【发布时间】:2021-12-13 10:39:18
【问题描述】:
我有一个场景,我需要使用来自 2 个不同表的列添加唯一约束。 我有 2 张桌子。第一个表是这样的,
TABLE MODEL(
ID PRIMARY_KEY,
KEY
)
第二个表为,
TABLE OWNERS(
ID PRIMARY_KEY,
MODEL_ID FOREIGN_KEY REFERENCES MODEL.ID,
USER
)
我的要求是MODEL.KEY + OWNERS.USER 的组合应该是唯一的。
我们怎样才能做到这一点?
注意: 我使用 Postgres 作为数据库。 无法将 OWNERS.USER 添加到 MODEL 表中。
【问题讨论】:
-
“MODEL.KEY + OWNERS.USER 的组合应该是唯一的”是什么意思?在什么表/行集合中?模型交叉加入所有者?所有者的模型交叉连接投影的投影? (相同。)请通过编辑而不是 cmets 进行澄清。 How to Ask minimal reproducible example PS 使用 SQL 声明性约束,您可以将其作为基表并声明适当的 UNIQUE 和 FK 约束。当然,更新必须是适当的。 PS SQL 中的通用约束实施需要触发器。 PS你的研究表明了什么? PS您对架构更改给出了一些限制,但最终允许的shema更改是什么?
标签: sql database-design unique-constraint