SQL / JPA "условная" уникальность вещь? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть Корабль отношений OneToMany в моих сущностях. Есть статья сущности и черновик сущности. Каждый черновик имеет уникальную версию, связанную со статьей.

aritcle_id | draft_id | version
-------------------------------
 1         | 1        | 1
 1         | 2        | 2
 1         | 3        | 3
 2         | 4        | 1

Если я сделаю версию «уникальной», она будет уникальной на всю строку, можно ли объявить ее уникальной по строке статьи? Значит, у вас могут быть дублированные версии, но только если версия прикреплена к другой статье?

1 Ответ

1 голос
/ 14 июля 2020

Каждый черновик имеет уникальную версию

Вы можете реализовать это с помощью уникального ограничения. Я думаю, это:

alter table t add constraint unq_t_draft_version unique (draft_id, version);

Если draft_id может повторяться в разных статьях, вы можете включить все три столбца:

alter table t add constraint unq_t_article_draft_version unique (article_id, draft_id, version);
...