Samozřejmě se bude škálovat. To bude fungovat dobře, je to běžně používaná struktura.
Zahrňte level_no
. To pomůže v kódu, ale co je důležitější, je nutné vyloučit duplikáty.
Pokud chcete opravdu pevnou strukturu, potřebujete něco jako unixový koncept inodů.
Možná budete mít potíže zorientovat se v kódu potřebném k vytvoření hierarchie, řekněme z product
, ale to je samostatný problém.
A prosím změňte
- (
product_category
))id
naproduct_category_id
- (
product
id
naproduct_id
parent_id
naparent_product_category_id
Odpovědi na komentáře
-
level_no
. Podívejte se na tento datový model, jedná se o strukturu Directory Tree (např. okno Průzkumníka FlieManager):Podívejte se, jestli tomu rozumíte, to je koncept unixového inodu. Názvy souborů musí být jedinečné v rámci uzlu, proto druhý index. To je vlastně hotovo, ale někteří vývojáři v dnešní době budou mít sykavý záchvat psaní kódu potřebného k navigaci v hierarchii, úrovních. Tito vývojáři potřebují
level_no
identifikovat, s jakou úrovní v hierarchii se zabývají. -
Doporučené změny. Ano, říká se tomu Konvence dobrého jména. Jsem na to přísný a publikuji to, takže je to standard pro pojmenování. Má to své důvody, které vám budou jasné, když napíšete nějaké SQL se 3 nebo 4 úrovněmi spojení; zvláště když jdete ke stejnému rodiči dvěma různými způsoby. Pokud budete hledat SO, najdete k tomu mnoho otázek; vždy stejná odpověď. Bude také zvýrazněna v dalším modelu, který pro vás napíšu.