PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kolom mana untuk kunci asing:id atau kolom lainnya dan mengapa?

Kunci asing harus menargetkan kunci utama atau batasan unik. Adalah normal untuk mereferensikan kunci utama, karena Anda biasanya ingin mereferensikan satu baris di tabel lain, dan kunci utama adalah pengidentifikasi baris tabel.

Dari sudut pandang teknis, tidak masalah apakah kunci asing mereferensikan kunci utama atau batasan unik lainnya, karena di PostgreSQL keduanya diimplementasikan dengan cara yang sama, menggunakan indeks unik.

Mengenai contoh konkret Anda, tidak ada yang salah dengan memiliki size yang unik kolom vehicle_size menjadi target kunci asing, meskipun itu menimbulkan pertanyaan mengapa Anda tidak membuat size kunci utama dan hilangkan id kolom sama sekali. Setiap tabel tidak perlu memiliki id kolom yang merupakan kunci utama numerik yang dibuat secara otomatis, kecuali bahwa mungkin ada ORM dan perangkat lunak lain yang mengharapkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. permata sekuel ruby ​​- cara menanyakan array dengan ekstensi pg_array

  2. Pencadangan &Pemulihan PostgreSQL 9.0

  3. GROUP BY dalam klausa UPDATE FROM

  4. Ekspor tabel dari database Postgres (di server) ke file csv (di lokal) di java

  5. Bagaimana cara membuat indeks unik dengan kondisional dan subquery di PostgreSQL?