Detaillierte Erläuterung von drei Beziehungsbeispielen für MySQL-Fremdschlüssel

Detaillierte Erläuterung von drei Beziehungsbeispielen für MySQL-Fremdschlüssel

Dieser Artikel beschreibt anhand von Beispielen die drei Beziehungen der MySQL-Fremdschlüssel. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Aufgrund der Fremdschlüsseleinschränkung bilden die beiden Tabellen drei Arten von Beziehungen:

  • Viele zu Eins
  • Viele-zu-viele
  • Eins-zu-eins

Eins-zu-viele oder viele-zu-eins

Viele zu Eins

Tabelle erstellen drücken(
  ID int Primärschlüssel auto_increment,
  Name varchar(20)
);
Tabelle Buch erstellen(
  ID int Primärschlüssel auto_increment,
  Name varchar(20),
  press_id int ungleich null,
     Einschränkung fk_book_press Fremdschlüssel (press_id) Referenzen press(id)
  bei Löschkaskade
  bei Updatekaskade
);

# Fügen Sie zuerst die Datensätze in die zugehörige Tabelle ein, und fügen Sie sie in press(name)-Werte ein.
(,,Beijing Industrial Mine Press‘‘),
(„Volksmusik ist nicht gut für Verlage“)
(„Geistiges Eigentum ist für Verleger nutzlos“)
;
# Datensätze in die zugehörige Tabelle einfügen, in Buchwerte (Name, Press_ID) einfügen
('Neun Yang Magie',1),
('Neun Yin Handbuch',2),
('Neun Yin weiße Knochenklaue',2),
('Dugu Jiujian',3),
('Zehn Ohrfeigen, um den Drachen zu bezwingen', 2),
('Sonnenblumen-Sammlung',3)
;

Abfrageergebnisse:

mysql> wähle * aus Buch;
+----+-----------------+----------+
| ID | Name | Presse-ID |
+----+-----------------+----------+
| 1 | Neun-Yang-Magiefertigkeit | 1 |
| 2 | Neun Yin-Handbuch | 2 |
| 3 | Neun Yin-Knochenklaue | 2 |
| 4 | Dugu Jiujian | 3 |
| 5 | Zehn Schläge des Drachen | 2 |
| 6 | Sunflower Handbuch | 3 |
+----+-----------------+----------+
Zeilen im Set (0,00 Sek.)
mysql> wählen Sie * aus drücken;
+----+--------------------------------+
| Ich würde | Name |
+----+--------------------------------+
| 1 | Pekinger Industrie- und Bergbaupresse |
| 2 | Volksmusikverlag |
| 3 | Geistiges Eigentum ist nutzlos |
+----+--------------------------------+
Zeilen im Set (0,00 Sek.)

Viele-zu-viele, Einführung einer dritten Tabelle

Viele-zu-viele

# Erstellen Sie die zugehörige Tabelle „table author“. Die vorherige Tabelle „book“ wurde in einer Viele-zu-eins-Beziehung erstellt. create table author(
  ID int Primärschlüssel auto_increment,
  Name varchar(20)
);
#Diese Tabelle speichert die Beziehung zwischen der Autorentabelle und der Buchtabelle. Um die Beziehung zwischen den beiden abzufragen, fragen Sie einfach diese Tabelle ab. create table author2book(
  id int ungleich null eindeutig auto_increment,
  author_id int ungleich null,
  book_id int ungleich null,
  Einschränkung fk_author Fremdschlüssel(author_id) verweist auf author(id)
  bei Löschkaskade
  bei Update-Kaskade,
  Einschränkung fk_book Fremdschlüssel (Buch-ID) Referenzen Buch (ID)
  bei Löschkaskade
  bei Update-Kaskade,
  Primärschlüssel (Autor-ID, Buch-ID)
);
#Fügen Sie vier Autoren mit ihren in der Reihenfolge angeordneten IDs ein. Einfügen in Autor(Name)-Werte('egon'),('alex'),('wusir'),('yuanhao');
# Repräsentative Werke jedes Autors egon: Neun Yang Magic Art, Neun Yin Manual, Neun Yin Bones Claw, Dugu Jiujian, Zehn Handflächen der Drachenbezwingung, Sonnenblumensammlung alex: Neun Yang Magic Art, Sonnenblumensammlung wusir: Dugu Jiujian, Zehn Handflächen der Drachenbezwingung, Sonnenblumensammlung yuanhao: Neun Yang Magic Art # Entsprechende Daten in die Tabelle author2book einfügen insert into author2book(author_id,book_id) values
(1,1),
(1,2),
(1,3),
(1,4),
(1,5),
(1,6),
(2,1),
(2,6),
(3,4),
(3,5),
(3,6),
(4,1)
;

# Jetzt können Sie die Beziehung zwischen dem Autor und dem Buch entsprechend author2bookmysql> select * from author2book; überprüfen.
+----+-----------+---------+
| ID | Autoren-ID | Buch-ID |
+----+-----------+---------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 1 | 5 |
| 6 | 1 | 6 |
| 7 | 2 | 1 |
| 8 | 2 | 6 |
| 9 | 3 | 4 |
| 10 | 3 | 5 |
| 11 | 3 | 6 |
| 12 | 4 | 1 |
+----+-----------+---------+
Zeilen im Set (0,00 Sek.)

Eins-zu-eins-Situation

Eins-zu-eins

#Beispiel: Ein Benutzer kann nur ein Blog registrieren. #Zwei Tabellen: Benutzertabelle (Benutzer) und Blogtabelle (Blog)
# Eine Benutzertabelle erstellen create table user(
  ID int Primärschlüssel auto_increment,
  Name varchar(20)
);
# Erstellen Sie eine Blog-Tabelle create table blog(
  ID int Primärschlüssel auto_increment,
  URL varchar (100),
  Benutzer-ID int eindeutig,
  Einschränkung fk_user Fremdschlüssel (Benutzer-ID) verweist auf Benutzer(-ID)
  bei Löschkaskade
  bei Updatekaskade
);
#Datensätze in die Benutzertabelle einfügen in Benutzer(name)-Werte einfügen
('Alex'),
('wusir'),
('egon'),
('xiaoma')
;
#Datensätze in Blog-Tabelle einfügen in Blog-Werte (URL, Benutzer-ID) einfügen
('http://www.cnblog/alex',1),
('http://www.cnblog/wusir',2),
('http://www.cnblog/egon',3),
('http://www.cnblog/xiaoma',4)
;
# Abfrage der Blogadresse von Wusir. Wählen Sie die URL aus dem Blog aus, wo user_id=2 ist.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Grundfunktionen und Verwendung von MySQL-Fremdschlüsseln
  • Optimierung von Datentabellen in MySQL-Datenbanken, Analyse von Fremdschlüsseln und Nutzung von drei Paradigmen
  • Detaillierte Erklärung zum Erstellen einer Datentabelle in MySQL und zum Herstellen von Primär- und Fremdschlüsselbeziehungen
  • Beispiele für allgemeine Operationen mit MySQL-Fremdschlüsseleinschränkungen [Anzeigen, Hinzufügen, Ändern, Löschen]
  • Gründe und Lösungen für das Fehlschlagen der Erstellung von Fremdschlüsseln durch MySQL
  • Einführung in die MySQL-Methode zum Löschen von Tabellendaten mit Fremdschlüsseleinschränkungen
  • Einfache Implementierung zum Ignorieren von Fremdschlüsseleinschränkungen beim Löschen von MySQL-Tabellen
  • MySQL fügt einen Fremdschlüsselfehler hinzu: 1215 Die Fremdschlüsseleinschränkungslösung kann nicht hinzugefügt werden
  • So verwenden Sie Fremdschlüssel in MySQL, um kaskadierendes Löschen und Aktualisieren zu implementieren
  • Lösung für Fremdschlüsselfehler bei der MySQL-Tabellenerstellung

<<:  Vue implementiert rekursiv benutzerdefinierte Baumkomponenten

>>:  Detaillierte Erläuterung des Zeitdarstellungsbeispiels des Linux-Zeitsubsystems

Artikel empfehlen

Detaillierte Erläuterung des Kapselungsbeispiels für Netzwerkanforderungen

Exportstandard ({ URL (URL = URL = URL), Methode ...

Prinzip des Ladens von Docker-Images

Inhaltsverzeichnis Docker-Images Was ist ein Spie...

So verwenden Sie SessionStorage und LocalStorage in Javascript

Inhaltsverzeichnis Vorwort Einführung in SessionS...

Mysql 5.6.37 Winx64-Installation Dual-Version MySQL-Hinweise

Wenn MySQL Version 5.0 bereits auf dem Computer v...

So implementieren Sie die JavaScript-Ausgabe der Fibonacci-Folge

Inhaltsverzeichnis Thema analysieren Basislösung ...

Analyse des Prozesses zum Erstellen eines LAN-Servers basierend auf http.server

Ich weiß nicht, ob Sie schon einmal in eine solch...

So konfigurieren Sie Java-Umgebungsvariablen im Linux-System

Konfigurieren von Java-Umgebungsvariablen Hier we...

Zusammenfassung der in MySQL häufig verwendeten Verkettungsanweisungen

Vorwort: In MySQL wird die Funktion CONCAT() verw...

Javascript-Grundlagen zu integrierten Objekten

Inhaltsverzeichnis 1. Einführung in integrierte O...

80 Zeilen Code zum Schreiben eines Webpack-Plugins und Veröffentlichen auf npm

1. Einleitung Ich habe vor Kurzem die Prinzipien ...

Über Front-End JavaScript ES6 Details

Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...

Details zur Bündelung statischer Ressourcen ohne JavaScript

Inhaltsverzeichnis 1. Benutzerdefinierter Import ...