Exemple de relation impliquant plusieurs entités
P粉327903045
P粉327903045 2023-08-27 21:44:53
0
2
436

Je n'ai trouvé aucun exemple de relations plusieurs-à-plusieurs MYSQL ici ou dans Google. Ce que je recherche, c'est un exemple très simple où php+mysql affiche les résultats d'une base de données. Quelqu'un peut-il écrire un exemple très simple ?

P粉327903045
P粉327903045

répondre à tous (2)
P粉288069045

Ceci est un exemple simple et approximatif du SQL impliqué. Je ne pense pas qu'il soit nécessaire de confondre ce concept avec php. Récupérez simplement la collection comme n’importe quelle autre collection.

Dans cet exemple, il existe de nombreux noms et de nombreuses couleurs. Les gens peuvent avoir plus d’une couleur préférée, et plusieurs personnes peuvent avoir la même couleur préférée. Donc plusieurs à plusieurs.

***** Tables ********** person -------- id - int name - varchar favColor ------------- id - int color - varchar person_color ------------ person_id - int (matches an id from person) color_id - int (matches an id from favColor) ****** Sample Query ****** SELECT name, color FROM person LEFT JOIN person_color ON (person.id=person_id) LEFT JOIN favColor ON (favColor.id=color_id) ****** Results From Sample Query ******* Name - Color --------------- John - Blue John - Red Mary - Yellow Timmy - Yellow Suzie - Green Suzie - Blue etc...

Est-ce utile ?

    P粉007288593

    Exemple de scénario : Étudiants et cours dans une université. Un étudiant donné peut suivre plusieurs cours et, naturellement, un cours comptera souvent de nombreux étudiants.

    Exemple de tableau, conception simple :

    CREATE TABLE `Student` ( `StudentID` INT UNSIGNED NOT NULL AUTO_INCREMENT, `FirstName` VARCHAR(25), `LastName` VARCHAR(25) NOT NULL, PRIMARY KEY (`StudentID`) ) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci CREATE TABLE `Course` ( `CourseID` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, `Code` VARCHAR(10) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, `Name` VARCHAR(100) NOT NULL, PRIMARY KEY (`CourseID`) ) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci CREATE TABLE `CourseMembership` ( `Student` INT UNSIGNED NOT NULL, `Course` SMALLINT UNSIGNED NOT NULL, PRIMARY KEY (`Student`, `Course`), CONSTRAINT `Constr_CourseMembership_Student_fk` FOREIGN KEY `Student_fk` (`Student`) REFERENCES `Student` (`StudentID`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `Constr_CourseMembership_Course_fk` FOREIGN KEY `Course_fk` (`Course`) REFERENCES `Course` (`CourseID`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=INNODB CHARACTER SET ascii COLLATE ascii_general_ci

    Retrouvez tous les étudiants inscrits à un cours :

    SELECT `Student`.* FROM `Student` JOIN `CourseMembership` ON `Student`.`StudentID` = `CourseMembership`.`Student` WHERE `CourseMembership`.`Course` = 1234

    Retrouvez tous les cours suivis par un élève donné :

    SELECT `Course`.* FROM `Course` JOIN `CourseMembership` ON `Course`.`CourseID` = `CourseMembership`.`Course` WHERE `CourseMembership`.`Student` = 5678
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!