Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Desain database untuk kategori, subkategori dan buku terkait

Tidak ada alasan untuk memiliki lebih dari satu tabel untuk "kategori", apakah itu kategori tingkat atas atau sub-kategori. Semuanya hanyalah "kategori".

Jadi, buat satu tabel bernama "kategori", dengan parent_id bidang:

// categories table
id
name
user_id
parent_id

Saat Anda ingin menarik semua kategori tingkat atas, jalankan kueri Anda terhadap categories tabel dengan syarat parent_id adalah nol.

Kemudian, ketika Anda ingin menarik subkategori, jalankan kueri terhadap categories tabel dengan ketentuan parent_id = 123 (atau apa pun).

Ini tidak hanya menjaga semuanya jauh lebih bersih, tetapi juga memungkinkan perluasan jika Anda ingin terus menambahkan sub-sub-sub-sub kategori...dll.

Pilihan lainnya adalah dengan menggunakan TreeBehavior CakePHP .

Saya pribadi lebih suka menggunakan cara yang saya sarankan di atas, tetapi mungkin saja karena saya belum meluangkan waktu untuk benar-benar memahami perilaku ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa Rails mengabaikan Rollback dalam transaksi bersarang (semu)?

  2. Bagaimana cara menginstal pyodbc 64-bit?

  3. Buat Insert... Pilih pernyataan di Laravel

  4. MySQL CURRENT_TIMESTAMP saat membuat dan memperbarui

  5. Mysql Konversi Kolom ke baris (Tabel pivot)