Oczywiście będzie się skalować. To będzie działać dobrze, jest to powszechnie stosowana struktura.
Dołącz level_no
. To pomoże w kodzie, ale co ważniejsze, wymagane jest wykluczenie duplikatów.
Jeśli chcesz mieć naprawdę ścisłą strukturę, potrzebujesz czegoś w rodzaju koncepcji i-węzłów uniksowej.
Możesz mieć trudności ze zrozumieniem kodu wymaganego do utworzenia hierarchii, powiedzmy z product
, ale to osobny problem.
I proszę zmień
- (
product_category
))id
doproduct_category_id
- (
product
id
doproduct_id
parent_id
doparent_product_category_id
Odpowiedzi na komentarze
-
level_no
. Spójrz na ten model danych, jest to struktura drzewa katalogów (np. okno FlieManager Explorer):Zobacz, czy możesz to zrozumieć, to jest koncepcja i-węzła uniksowego. Nazwy plików muszą być unikalne w obrębie węzła, stąd drugi indeks. To właściwie jest kompletne, ale niektórzy programiści w dzisiejszych czasach będą mieli problem z pisaniem kodu wymaganego do poruszania się po hierarchii, poziomach. Ci programiści potrzebują
level_no
aby określić, z jakim poziomem w hierarchii mają do czynienia. -
Zalecane zmiany. Tak, nazywa się to konwencjami dobrego nazewnictwa. Podchodzę do tego sztywno i publikuję, więc jest to standard nazewnictwa. Są ku temu powody, które staną się dla ciebie jasne, gdy napiszesz jakiś SQL z 3 lub 4 poziomami złączeń; zwłaszcza, gdy idziesz do tego samego rodzica na dwa różne sposoby. Jeśli wyszukasz SO, znajdziesz wiele pytań na ten temat; zawsze ta sama odpowiedź. Zostanie on również podświetlony w następnym modelu, który dla Ciebie napiszę.