PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Уникална комбинация в маса

Това може (и трябва) да бъде решено на ниво DB, ако искате да гарантирате целостта на данните по всяко време. Има различни начини, частично UNIQUE INDEX вероятно е най-простият и най-ефективен.

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

->sqlfiddle

Също така ще ускори заявките за извличане на снимки от началната страница като допълнителна полза.

Промяна на схема

Друг подход би бил да добавите колона homepage_id към масата house , сочейки към избрана картина. Автоматично може да бъде избрана само 1 снимка. Няма да имате нужда от picture.homepage повече. Референтната цялост може да е малко трудна поради ограниченията на външния ключ и в двете посоки, но имам работещи решения като това.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:синтаксис на ляво външно присъединяване

  2. postgres и python

  3. Как да създадете резервно копие на една таблица в база данни на postgres?

  4. Amazon Aurora PostgreSQL SELECT INTO OUTFILE S3

  5. Rails 4 LIKE заявка - ActiveRecord добавя кавички