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

Desain Basis Data Relasional (MySQL)

sebelum menjawab pertanyaan Anda... saya pikir user_id tidak boleh ada di tabel Talents... ide utamanya di sini adalah bahwa "untuk 1 talenta Anda memiliki banyak pengguna, dan untuk satu pengguna Anda memiliki beberapa talenta".. jadi hubungannya seharusnya NxN, Anda memerlukan tabel perantara

lihat:banyak ke banyak

sekarang

jika Anda ingin melakukan sesuatu yang dinamis (menambah atau menghapus subtalenta), Anda dapat menggunakan hubungan rekursif. Itu adalah tabel yang berhubungan dengan dirinya sendiri

TABLE TALENT
-------------
id  PK
label
parent_id PK FK (a foreign key to table Talent)

lihat :asosiasi rekursif

jika Anda menggunakan model sebelumnya, itu bisa menjadi mimpi buruk untuk membuat kueri, karena Talent tabel Anda sekarang menjadi POHON yang dapat berisi beberapa level.. Anda mungkin ingin membatasi diri Anda ke sejumlah level tertentu yang Anda inginkan di Tabel Talent saya kira cukup dua.. dengan begitu pertanyaan Anda akan lebih mudah

saat menggunakan hubungan rekursif... kunci asing harus membiarkan nol karena talenta tingkat atas tidak akan memiliki parent_id...

Semoga berhasil! :)

EDIT: ok.. saya sudah membuat modelnya.. untuk menjelaskannya dengan lebih baik

Sunting Model kedua (berbentuk pohon natal =D ) Perhatikan bahwa relasi antara Model &Talent dan Actor &Talent adalah relasi 1x1, ada beberapa cara untuk melakukannya (tautan yang sama di komentar )

untuk mengetahui apakah pengguna memiliki bakat.. gabungkan tiga tabel pada kueri =)semoga membantu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Emoji tidak dimasukkan ke dalam simpul basis data js mysql

  2. Ganti nama tabel di MySQL

  3. HTML - Ubah\Perbarui konten halaman tanpa menyegarkan\memuat ulang halaman

  4. MySQL Pilih Berdasarkan Timestamp Terbaru

  5. Periksa apakah tabel MySQL ada tanpa menggunakan pilih dari sintaks?