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

Kombinasi unik dalam sebuah meja

Itu dapat (dan harus) diselesaikan pada tingkat DB jika Anda ingin menjamin integritas data setiap saat. Ada berbagai cara, parsial UNIQUE INDEX mungkin yang paling sederhana dan paling efektif.

CREATE UNIQUE INDEX picture_homepage_uni ON picture (house_id) WHERE homepage;

->sqlfiddle

Juga akan mempercepat kueri untuk mengambil gambar beranda sebagai manfaat tambahan.

Ubah skema

Pendekatan yang berbeda adalah dengan menambahkan kolom homepage_id ke meja house , sambil menunjuk ke gambar yang dipilih. Secara otomatis, hanya 1 gambar yang dapat dipilih. Anda tidak perlu picture.homepage lagi. Integritas referensial mungkin sedikit rumit karena batasan kunci asing di kedua arah, tetapi saya memiliki solusi yang berfungsi seperti itu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks teks lengkap yang tepat Rails/PostgreSQL/pg_search

  2. Menghilangkan tanda kutip ganda untuk melakukan kueri di PostgreSQL

  3. Hilangkan tanda kutip ganda dari bidang json secara selektif di PostgreSQL

  4. Pivot / tab silang dengan lebih dari satu kolom nilai

  5. Tidak dapat melepaskan peran PostgreSQL. Kesalahan:`tidak dapat dijatuhkan karena beberapa objek bergantung padanya`