Ich möchte eine rekursive Eltern-Kind-Beziehung in einer MySQL-Datenbank darstellen. Ich möchte eine category
- subcategory
Beziehung erstellen. Eine Kategorie kann N Unterkategorien haben und jede davon kann N Unterkategorien usw. haben. Ich dachte daran, eine einzige category
Tabelle mit einem fremden Schlüssel in sich selbst zu haben. Hier ist, was ich meine:SQL Database Design, rekursive Eltern-Kind-Beziehung?
CREATE TABLE `category` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`parent_category` int NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`parent_category`) REFERENCES `category` (`id`)
)
parent_category
null sein kann, wenn eine Kategorie eine Top-Level-Kategorie ist.
Ist das die richtige Art, eine Beziehung wie diese darzustellen? Gibt es noch andere Dinge, die ich in meinem Entwurf berücksichtigen sollte (Leistung, Fragen ...)?
möglich Duplikat [SQL - Wie speichern und Hierarchien navigieren] (http://stackoverflow.com/questions/38801/sql -how-to-store-and-navigate-hierarchies) –
Aufgrund der eingeschränkten SQL-Funktionen von MySQL würde ich das in MySQL nicht so machen. Sie werden es sehr schwer haben, Daten aus dieser Hierarchie aufgrund fehlender rekursiver Abfragen abzurufen. Suchen Sie nach einem "geschachtelten Mengenmodell" für ein anderes Design, das mit MySQL implementiert werden kann –