Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaprojektuj bazę danych dla kategorii, podkategorii i powiązanych książek

Nie ma powodu, aby mieć więcej niż jedną tabelę dla „kategorii”, niezależnie od tego, czy jest to kategoria najwyższego poziomu, czy podkategoria. Wszystkie to tylko „kategorie”.

Miej więc jedną tabelę o nazwie „categories” z parent_id pole:

// categories table
id
name
user_id
parent_id

Jeśli chcesz pobrać wszystkie kategorie najwyższego poziomu, po prostu uruchom zapytanie względem categories tabela z warunkiem, że parent_id jest zerowe.

Następnie, jeśli chcesz pobrać podkategorie, po prostu uruchom zapytanie względem categories tabela z warunkiem, że parent_id = 123 (lub cokolwiek).

Dzięki temu wszystko jest nie tylko czystsze, ale także pozwala na rozbudowę w przypadku, gdy chcesz kontynuować dodawanie podkategorii pod-pod-podkategorii... itd.

Inną opcją jest użycie CakePHP TreeBehavior .

Osobiście po prostu wolę używać sposobu, który zasugerowałem powyżej, ale może to być spowodowane tym, że nie poświęciłem czasu, aby naprawdę wystarczająco zrozumieć to zachowanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Naprawianie kodowania

  2. jak wyświetlić wiele obrazów (blob) z mysql za pomocą php?

  3. Przyrost atomowy z Entity Framework

  4. czy istnieje sposób na wyświetlenie listy wszystkich słów zastrzeżonych w mysql za pomocą narzędzia wiersza poleceń mysql?

  5. Tydzień roku dla tygodni zaczynających się od soboty