sql >> Databáze >  >> RDS >> Mysql

Databázové modelování:Jak kategorizovat produkty jako Amazon?

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 na product_category_id
  • (product id na product_id
  • parent_id na parent_product_category_id

Odpovědi na komentáře

  1. level_no . Podívejte se na tento datový model, jedná se o strukturu Directory Tree (např. okno Průzkumníka FlieManager):

    Datový model adresáře

    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í.

  2. 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.



  1. Jaký je smysl počátečního katalogu v připojovacím řetězci SQL Server?

  2. Oracle SQL:Sloupec není povolen

  3. php mysql Connect Database z jiného serveru

  4. Kardinalita indexu MySQL – výkon versus efektivita úložiště