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

Pemodelan Basis Data:Bagaimana cara mengkategorikan produk seperti Amazon?

Tentu saja itu akan skala. Itu akan bekerja dengan baik, itu adalah struktur yang umum digunakan.

Sertakan level_no . Itu akan membantu dalam kode, tetapi yang lebih penting, diperlukan untuk mengecualikan duplikat.

Jika Anda menginginkan struktur yang sangat ketat, Anda memerlukan sesuatu seperti konsep inode Unix.

Anda mungkin mengalami kesulitan memahami kode yang diperlukan untuk menghasilkan hierarki, katakanlah dari product , tapi itu masalah terpisah.

Dan tolong ubah

  • (product_category )) id ke product_category_id
  • (product id ke product_id
  • parent_id ke parent_product_category_id

Tanggapan terhadap Komentar

  1. level_no . Lihat Model Data ini, ini untuk struktur Pohon Direktori (mis. jendela FlieManager Explorer):

    Model Data Direktori

    Lihat apakah Anda dapat memahaminya, itulah konsep inode Unix. FileNames harus unik di dalam Node, oleh karena itu Indeks kedua. Itu sebenarnya lengkap, tetapi beberapa pengembang hari ini akan kesulitan menulis kode yang diperlukan untuk menavigasi hierarki, level. Pengembang tersebut membutuhkan level_no untuk mengidentifikasi level mana dalam hierarki yang mereka hadapi.

  2. Perubahan yang disarankan. Ya, itu disebut Konvensi Penamaan yang Baik. Saya kaku tentang itu, dan saya mempublikasikannya, jadi ini adalah Standar Penamaan. Ada alasan untuk itu, yang akan menjadi jelas bagi Anda ketika Anda menulis beberapa SQL dengan 3 atau 4 level gabungan; terutama ketika Anda pergi ke satu orang tua yang sama dengan dua cara yang berbeda. Jika Anda mencari SO, Anda akan menemukan banyak pertanyaan untuk ini; jawaban yang selalu sama. Ini juga akan disorot dalam model berikutnya yang saya tulis untuk Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Php mysql pdo query:isi variabel dengan hasil query

  2. Prosedur tersimpan dengan Alembic:Kesalahan Sintaks MySQL

  3. Mengapa koneksi MySQL diblokir dari banyak kesalahan koneksi?

  4. mysql kiri gabungkan jumlah dua tabel dengan rollup

  5. PHP MYSQL mengimpor CSV dan kemudian membandingkan dan menghapus entri yang berlebihan