Mit einer gut strukturierten MySQL-Datenbank können die Beziehungen zwischen den Tabellen genutzt werden, um das Potenzial von PHPCG voll auszuschöpfen.
Die Beziehungen zwischen den verschiedenen Tabellen in einer MySQL-Datenbank müssen die logische Datenstruktur widerspiegeln.
Es ist daher wichtig, die verschiedenen Arten von Beziehungen zu verstehen.
PHP CRUD Generator ist in der Lage, Ihre Datenbank zu analysieren und alle Arten von Beziehungen zu verstehen, direkte und indirekte.
Sobald Ihre Beziehungen richtig hergestellt sind, können Sie alle Daten, die Sie benötigen, in den Datentabellen Ihres Bootstrap Admin Panels anzeigen.
Hier erklären wir Ihnen die verschiedenen Arten von MySQL-Beziehungen.
Die verschiedenen Arten von Beziehungen in einer MySQL-Datenbank
Nehmen wir eine Datenbank mit Produkten, Kunden und deren Bestellungen.
Jede Bestellung gehört zu einem Kunden und kann ein oder mehrere gekaufte Produkte enthalten. Ein und dasselbe Produkt kann von mehreren verschiedenen Kunden oder von demselben Kunden in mehreren Bestellungen gekauft worden sein.
So sieht unsere Datenbank-Shema aus:
Direkte und indirekte Beziehungen
Direkte Beziehungen (interne Beziehungen)eins-zu-eins, eins-zu-viele
Eine direkte Beziehung zwischen zwei Tabellen A und B ist eine Beziehung, bei der die Tabelle A direkt mit der Tabelle B durch einen Fremdschlüssel verbunden ist, der obligatorisch ist oder nicht. Diese Art von Beziehung kann eins-zu-eins oder eins-zu-viele sein.
In unserem Beispiel ist das Feld orders.customers_id eine direkte Beziehung zu customers.id. Die orders.customers_id ist ein Fremdschlüssel.
Diese Beziehung ermöglicht es, jede Bestellung mit einem Kunden zu verknüpfen.
Mit PHP CRUD Generator können wir den Kundennamen jeder Bestellung in der Bestellliste anzeigen.
Auf der Registerkarte CRUD Generator Build List sehen Sie die Beziehung folgendermaßen dargestellt:
Eine indirekte Beziehung wird verwendet, um mehrere Datensätze in Tabelle A mit mehreren Datensätzen in Tabelle B zu verknüpfen. Zu diesem Zweck verwenden wir eine Zwischentabelle, die in der Regel aus zwei Fremdschlüsseln besteht, die es uns ermöglichen, die Datensätze der Tabellen A und B zu identifizieren. Bei dieser Beziehung handelt es sichum eine Many-to-Many-Beziehung.
In unserem Beispiel ist die Tabelle products_orders die Zwischentabelle. Sie ermöglicht es uns, die bestellten Produkte mit den Bestellungen zu verknüpfen. Die Tabellen products_orders.products_id und products_orders.orders_id sind beide Fremdschlüssel.
Mit PHP CRUD Generator können Sie alle Produkte jeder Bestellung in einer verschachtelten Tabelle in der Bestellliste anzeigen.
Mit dem Generator können Sie auch die Produktfelder auswählen, die angezeigt werden sollen, und festlegen, ob die Benutzer des Admin-Panels Produkte direkt aus der Liste der Bestellungen READ hinzufügen/bearbeiten/löschen dürfen.
Mit PHP CRUD Generator können wir den Kundennamen jeder Bestellung in der Bestellliste anzeigen.
Auf der Registerkarte CRUD Generator Build List sehen Sie die Beziehung folgendermaßen dargestellt:
Identifizierende und nicht-identifizierende Beziehungen
Beziehungen erkennen
Eine identifizierende Beziehung kann definiert werden, wenn zwei Tabellen durch denselben Bezeichner verbunden sind. Mit anderen Worten: Die Datensätze in der zweiten Tabelle sind inhärente Elemente oder Merkmale der ersten Tabelle.
Ein Beispiel: Ein Buch besteht aus Kapiteln. Jedes Kapitel ist Teil eines eindeutig identifizierten Buches. In diesem Fall wird der Fremdschlüssel chapters.books_id als der zweite Primärschlüssel der Tabelle chapters aufgeführt.
Diese Art von Beziehung wird heutzutage nur noch sehr selten verwendet. Stattdessen wird in der Regel eine indirekte Beziehung verwendet, die allgemeiner und weniger restriktiv ist.
Nicht-identifizierende Beziehungen
Eine nicht-identifizierende Beziehung ist eine Beziehung, bei der zwei Tabellen durch eine gemeinsame Mitgliedschaft oder Attribute oder einen Einschluss verbunden sind.
Zum Beispiel: jede Bestellung gehört zu einem Kunden; jede Bestellung enthält ein oder mehrere Produkte.