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))iddoproduct_category_id - (
productiddoproduct_id parent_iddoparent_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_noaby 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ę.