Einführung: Die Nachteile der Speicherung aller Daten in einer Tabelle
Um die oben genannten Probleme zu lösen, werden mehrere Tabellen zum Speichern der Daten benötigt. Es gibt drei Arten von Beziehungen zwischen Datensätzen in Tabellen: Eins-zu-viele, Viele-zu-viele und Eins-zu-eins. Um die Beziehungen zwischen Tabellen zu verarbeiten, wird FOREIGN KEY verwendet. Viele-zu-eins-Beziehung:Routine zum Suchen von Beziehungen zwischen Tabellen Beispiel: Mitarbeitertabelle: emp-Tabelle Abteilung: dep-Tabelle Teil 1:
Wenn ja, müssen Sie mit Teil 2 fortfahren Teil 2:
Endgültiges Übersetzungsergebnis: Können mehrere Abteilungen denselben Mitarbeiter enthalten? Wenn nicht, kann festgestellt werden, dass die Beziehung zwischen emp und dep nur eine einseitige Viele-zu-eins-Beziehung ist. Wie kann dies erreicht werden? Welchen Effekt hat der Fremdschlüssel? Einschränkung 1: Beim Erstellen einer Tabelle müssen Sie zuerst die zugehörige Tabelle dep erstellen, bevor Sie die zugehörige Tabelle emp erstellen können. Tabelle erstellen dep( ID int Primärschlüssel auto_increment, dep_name char(10), dep_comment char(60) ); Tabelle emp erstellen( ID int Primärschlüssel auto_increment, Name char(16), Geschlecht Aufzählung('männlich','weiblich') nicht null Standard 'männlich', dep_id int, Fremdschlüssel (dep_id) verweist auf dep(id) ); Einschränkung 2: Beim Einfügen von Datensätzen müssen Sie zuerst die zugehörige Tabelle dep einfügen, bevor Sie die zugehörige Tabelle emp einfügen. in dep(dep_name,dep_comment)-Werte einfügen ('Lehre', 'Betreuung von Studierenden und Lehrveranstaltungen'), ('Abteilung Öffentlichkeitsarbeit', 'Umgang mit PR-Krisen'), (,Technologieabteilung‘, ,Entwicklungsprojekte, Forschungstechnologie‘); in emp(name,gender,dep_id)-Werte einfügen ('monicx0','männlich',1), ('monicx1','männlich',2), ('monicx2','männlich',1), ('monicx3','männlich',1), ('lili','weiblich',3); Einschränkung 3: Sowohl beim Aktualisieren als auch beim Löschen muss die Beziehung zwischen dem Assoziierten und dem Assoziierten berücksichtigt werden. Lösung: 1. Löschen Sie zuerst die zugehörige Tabelle emp, dann die zugehörige Tabelle dep und bereiten Sie den Neuaufbau vor 2. Rekonstruktion: Neue Features hinzufügen, synchron aktualisieren, synchron löschen Tabelle erstellen dep( ID int Primärschlüssel auto_increment, dep_name char(10), dep_comment char(60) ); Tabelle emp erstellen( ID int Primärschlüssel auto_increment, Name char(16), Geschlecht Aufzählung('männlich','weiblich') nicht null Standard 'männlich', dep_id int, Fremdschlüssel (dep_id) verweist auf dep(id) bei Updatekaskade bei Löschkaskade ); Ändern Sie es jetzt: Das Ergebnis ist: Jetzt löschen: Das Ergebnis ist: Viele-zu-viele-Beziehungen:Zwischen den Datensätzen der beiden Tabellen besteht eine bidirektionale Viele-zu-Eins-Beziehung, die als Viele-zu-viele-Beziehung bezeichnet wird. Wie erreicht man das? Erstellen Sie eine dritte Tabelle mit einem Feldfremdschlüssel, der ID der linken Tabelle, und einem Feldfremdschlüssel, der ID der rechten Tabelle. Tabelle erstellen Autor( ID int Primärschlüssel auto_increment, Name Zeichen(16) ); Tabelle Buch erstellen( ID int Primärschlüssel auto_increment, bname char(16), Preis int ); in Autor(Name)-Werte einfügen ('monicx1'), ('monicx2'), ('monicx3') ; in Buchwerte (bname, Preis) einfügen ('Python vom Eingang zum Grab', 200), ('Liunx vom Eintritt bis zum Tod', 400), ('Java vom Eingang bis zum Grab', 300), ('PHP vom Eingang bis zum Grab', 100) ; #Erstellen Sie die dritte Tabelle: Tabelle author2book( erstellen ID int Primärschlüssel auto_increment, Autor_ID int, Buch-ID int, Der Fremdschlüssel (Autor-ID) verweist auf den Autor (ID). bei Updatekaskade beim Löschen der Kaskade, Fremdschlüssel (Buch-ID) verweist auf Buch (ID) bei Updatekaskade bei Löschkaskade ); in author2book(author_id,book_id)-Werte einfügen (1,3), (1,4), (2,2), (2,4), (3,1), (3,2), In einer Eins-zu-eins-Beziehung entspricht ein Datensatz in der linken Tabelle eindeutig einem Datensatz in der rechten Tabelle und umgekehrt. Tabelle Kunde erstellen( ID int Primärschlüssel auto_increment, Name char(20) nicht null, qq char(10) nicht null, Telefon char(16) nicht null ); Tabelle „Student“ erstellen ( ID int Primärschlüssel auto_increment, class_name char(20) nicht null, customer_id int unique, #Dieses Feld muss eindeutig sein. Der Fremdschlüssel (customer_id) verweist auf den Kunden (id). #Zu diesem Zeitpunkt muss die Eindeutigkeit des Fremdschlüsselfelds garantiert sein. bei Löschkaskade bei Updatekaskade ); Dies ist das Ende dieses Artikels über den detaillierten Fall der Verwendung von MySQL-Fremdschlüsseln (FOREIGN KEY). Weitere relevante Inhalte zur Verwendung von MySQL-Fremdschlüsseln (FOREIGN KEY) finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: 5 Gründe, warum sich Responsive Webdesign nicht lohnt
>>: Erste Schritte mit TS (TypeScript) im Vue-Projekt
1. Importieren Sie den grundlegenden Stil externe...
Offensichtliches HTML, verstecktes „öffentliches ...
Das Implementierungsprinzip der Kettenprogrammier...
Wiederherstellung der MySQL Bin-Protokolldaten: v...
Lassen Sie mich Ihnen ohne weitere Umschweife den...
Wir gehen davon aus, dass Sie ein linuxer sind, a...
1 Frage Der Server des Unternehmens verwendet Apa...
Manchmal kann das Thema eines Projekts nicht jede...
Inhaltsverzeichnis Vorwort 1. Allgemeine Fehlerbe...
Es gibt zwei Versionen der MySQL-Datenbankverwalt...
Inhaltsverzeichnis Docker-System df Docker-System...
Bei der Gestaltung einer Webseite passieren Desig...
Inhaltsverzeichnis 1. Oberflächliches Klonen 2. T...
Inhaltsverzeichnis 1. Übersicht 2. Anwendungsbeis...
Inhaltsverzeichnis Vorwort 1. Stellen Sie das Ins...