phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Memahami Primary Key dan Database Relasi dengan MySQL (phpmyadmin)

TL;DR Anda tidak membutuhkan untuk mendeklarasikan "hubungan" yaitu foreign key (FK) ke query. Tapi itu ide bagus . Saat Anda melakukannya, FK dapat mereferensikan kunci utama (PK) atau kolom UNIK lainnya.

PK &FK keliru disebut "hubungan" dalam beberapa metode dan produk. Hubungan aplikasi diwakili oleh tabel . (Tabel dasar dan hasil kueri.) PK &FK adalah kendala:mereka memberi tahu DBMS bahwa hanya situasi tertentu yang dapat muncul, sehingga dapat mengetahui saat Anda membuat kesalahan tertentu. Itu bukan hubungan, itu adalah pernyataan yang benar di &dari setiap status basis data dan situasi aplikasi. Anda tidak perlu mengetahui batasan untuk memperbarui dan mengkueri database.

Cukup tahu apa arti setiap tabel . Tabel dasar memiliki arti yang diberikan DBA yang memberi tahu Anda apa arti barisnya. Kueri juga memiliki arti yang memberi tahu Anda apa arti barisnya. Makna kueri digabungkan dari makna tabel dasar secara paralel dengan bagaimana nilai hasil mereka digabungkan dari nilai dan ketentuan tabel dasar.

  • image_tbl -- gambar [Id] ada dalam album bernama [albumName], diberi nama [name], diberi tanggal [dateTime] &memiliki komentar [comment]
  • album_tbl -- album [albumID] diberi nama [albumName]

Anda tidak memiliki untuk mendeklarasikan PK/UNIQUE atau FK apa pun! Tapi itu ide bagus karena DBMS dapat melarang pembaruan yang tidak mungkin/salah. A PK/UNIQUE mengatakan bahwa nilai subrow untuk kolomnya harus muncul hanya sekali. FK mengatakan bahwa nilai subrow untuk kolomnya harus muncul sebagai nilai subrow PK/UNIQUE di tabel referensinya. Fakta bahwa batasan ini berlaku pada tabel dasar berarti bahwa batasan tertentu berlaku pada hasil kueri. Tetapi arti dari hasil kueri tersebut sesuai dengan tabel kueri &kombinasi kondisi, terlepas dari batasan tersebut. Misalnya apakah nama album itu unik atau tidak,

  • image_tbl JOIN album_tbl USING albumName -- gambar [Id] ada dalam album bernama [albumName], diberi nama [name], diberi tanggal [dateTime] dan memiliki komentar [comment] DAN album [albumID] diberi nama [albumName]

Satu-satunya masalah di sini adalah jika nama album tidak unik maka mengetahui nama album gambar tidak akan memberi tahu Anda di album mana itu berada; Anda hanya tahu bahwa itu ada di album dengan nama itu. Di sisi lain, jika nama album unik, Anda tidak memerlukan album_tbl albumID.

Jadi jika nama album unik, nyatakan albumName UNIQUE di album_tbl. Kemudian di image_tbl identifikasi album dengan beberapa kolom PK/UNIQUE dari album_tbl. Karena album_id mungkin hadir hanya untuk tujuan mengidentifikasi album, biasanya kami mengharapkannya untuk dipilih. Kemudian di image_tbl nyatakan kolom itu sebagai album_tbl referensi FK.

Indeks PS umumnya mempercepat kueri dengan mengorbankan beberapa waktu dan ruang. Deklarasi kunci utama dalam deklarasi tabel secara otomatis mendeklarasikan indeks. Sebaiknya indeks set kolom PK, UNIK, dan FK.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Tidak dapat mengimpor basis data melalui phpmyadmin

  2. Apakah ada cara tidak ada catatan edit massal manual di php MyAdmin?

  3. Apa Hubungan Internal yang didefinisikan di phpMyAdmin?

  4. Laravel 7X admin/login loop kembali ke admin/login meskipun kredensial yang benar

  5. MAMP - phpMyAdmin #202 - Tidak dapat terhubung ke server MySQL lokal melalui soket '/Applications/MAMP/tmp/mysql/mysql.sock'