Selvfølgelig vil det skalere. Det vil fungere fint, det er en almindeligt brugt struktur.
Inkluder et level_no
. Det vil hjælpe med koden, men endnu vigtigere, det er påkrævet at udelukke dubletter.
Hvis du vil have en virkelig stram struktur, har du brug for noget som Unix-konceptet med inoder.
Du kan have svært ved at få hovedet omkring den kode, der kræves for at producere hierarkiet, f.eks. fra et product
, men det er et særskilt spørgsmål.
Og skift venligst
- (
product_category
))id
tilproduct_category_id
- (
product
id
tilproduct_id
parent_id
tilparent_product_category_id
Svar på kommentarer
-
level_no
. Tag et kig på denne datamodel, den er til en mappetræstruktur (f.eks. FlieManager Explorer-vinduet):Se om du kan forstå det, det er Unix inode-konceptet. Filnavnene skal være unikke i noden, derfor det andet indeks. Det er faktisk færdigt, men nogle udviklere vil i disse dage have en hysterisk pasform med at skrive den kode, der kræves for at navigere i hierarkiet, niveauerne. Disse udviklere har brug for et
level_no
at identificere hvilket niveau i hierarkiet de har med at gøre. -
Anbefalede ændringer. Ja, det hedder Good Naming Conventions. Jeg er rigid omkring det, og jeg udgiver det, så det er en navnestandard. Der er grunde til det, som vil blive klart for dig, når du skriver noget SQL med 3 eller 4 niveauer af joinforbindelser; især når du går til samme ene forælder på to forskellige måder. Søger du SO, vil du finde mange spørgsmål til dette; altid det samme svar. Den vil også blive fremhævet i den næste model, jeg skriver til dig.