In der Softwareentwicklung sind viele zu viele Beziehungen eine gemeinsame Datenmodellstruktur. Insbesondere bei der Verwendung von PHP für die objektorientierte Programmierung (OOP) kann der Umgang mit solchen Beziehungen die Flexibilität der Datenmodellierung verbessern. Zum Beispiel kann ein Schüler mehrere Kurse belegen, und ein Kurs kann auch von mehreren Studenten belegt werden. Diese Zwei-Wege-Multiple-Korrelation ist eine typische Anwendung vieler zu vielen Beziehungen.
Erstens möchten wir Klassen für zwei Kernobjekte erstellen: Schüler und Kurs. Jede Klasse enthält zugrunde liegende Eigenschaften wie ID und Name.
class Student {
private $id;
private $name;
// ...
}
class Course {
private $id;
private $name;
// ...
}
Da Datenbankbeziehungen in PHP nicht direkt unterstützt werden, müssen wir eine Zwischenklasse erstellen, um Intermediate -Tabellen in der Datenbank zu simulieren. Zum Beispiel kann eine StudentCourse -Klasse erstellt werden, um Schüler und Kurse zu verbinden.
class StudentCourse {
private $studentId;
private $courseId;
// ...
}
Fügen Sie die Beziehung des Wahlkurs für Schüler in eine Zwischentabelle ein (z. B. Student_Course ). Sie können den folgenden Code verwenden:
$studentId = 1;
$courseId = 2;
$query = "INSERT INTO student_course (student_id, course_id) VALUES (?, ?)";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId, $courseId]);
Um alle Kurse zu erhalten, die ein Student benötigt, können Sie das Kurseblatt über den Join -Operation mit dem Zwischentisch anschließen:
$studentId = 1;
$query = "SELECT course.* FROM course
JOIN student_course ON course.id = student_course.course_id
WHERE student_course.student_id = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId]);
$courses = $stmt->fetchAll(PDO::FETCH_ASSOC);
Wenn Sie die elektive Beziehung eines Schülers für einen Kurs absagen müssen, führen Sie einfach die Löschvoroper aus:
$studentId = 1;
$courseId = 2;
$query = "DELETE FROM student_course WHERE student_id = ? AND course_id = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$studentId, $courseId]);
Durch die obige Methode können viele zu viele Beziehungen in objektorientierten Umgebungen in PHP effektiv realisiert werden. Mit Hilfe der Struktur der Zwischentabelle können Entwickler die Beziehungen zwischen Schülern und Unternehmen wie Kursen einfach verwalten, einschließlich Hinzufügen, Abfragen und Löschen von Vorgängen und so ein flexibleres Datenmodell.