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

Bagaimana cara menetapkan beberapa id ke satu baris di MySQL?

Seperti yang telah disarankan orang lain, hubungan banyak ke banyak diwakili dalam model fisik oleh tabel persimpangan. Saya akan melakukan pekerjaan kaki dan mengilustrasikannya untuk Anda:

CATEGORY_ITEM adalah tabel persimpangan. Ini memiliki PK komposit yang terdiri dari FK yang dimigrasikan dari dua tabel lainnya. Contoh data...

KATEGORI:

CATEGORY_ID CATEGORY
----------- --------
1           Apple
2           Orange

ITEM:

ITEM_ID     NAME
-------     ----
1           Foo
2           Bar

CATEGORY_ITEM:

CATEGORY_ID ITEM_ID
----------- -------
1           1
2           1
1           2

Di atas berarti:"Foo adalah Apple dan Orange, Bar hanya Apple" .

PK memastikan kombinasi kategori dan item yang diberikan tidak boleh ada lebih dari satu kali. Kategori terhubung ke item tidak - tidak dapat terhubung beberapa kali.

Karena Anda terutama ingin menelusuri item dari kategori tertentu, urutan bidang dalam PK adalah {CATEGORY_ID, ITEM_ID} sehingga indeks yang mendasarinya dapat memenuhi kueri tersebut. Penjelasan yang tepat mengapa berada di luar cakupan ini - jika Anda tertarik, saya sangat menyarankan untuk membaca Gunakan Indeks, Luke ! .

Dan karena InnoDB menggunakan pengelompokan , ini juga akan menyimpan item yang termasuk dalam kategori yang sama secara fisik berdekatan, yang mungkin lebih bermanfaat untuk I/O kueri di atas.

(Jika Anda ingin membuat kueri untuk kategori item tertentu, Anda perlu membalik urutan bidang dalam indeks.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memiliki kesalahan mySQL, kolom tidak diketahui di mana klausa

  2. PHP float/ganda disimpan sebagai MySQL DECIMAL

  3. Secara dinamis mengisi beberapa bidang input dari MySQL tergantung pada item daftar drop yang dipilih

  4. cara menyematkan video dalam kode laravel

  5. Kombinasi pencarian lapangan menggunakan PHP &MYSQL