情况是我有一个租户表和一个基于租户的状态查找表。每个都有自己的自动编号主键。
现在我想向租户表添加一列,作为引用查找表的默认状态,租户应该只能默认为该租户中的状态,并且由于某种原因,FK 的确切结构很混乱我的头脑所以我想我会问以防我发疯哈哈。
前表:
租户:
租户ID | 姓名 | 默认状态ID |
---|---|---|
1 | 亚当 | 1 |
2 | 马特 | 7 |
地位:
租户ID | 状态ID | 姓名 |
---|---|---|
1 | 1 | 新的 |
1 | 2 | 关闭 |
1 | 3 | 取消 |
1 | 4 | 完毕 |
2 | 5 | 未来 |
2 | 6 | 已删除 |
2 | 7 | 打开 |
所以我打算添加外键,
CONSTRAINT [FK_Tenant_Status] FOREIGN KEY ([defaultStatusID]) REFERENCES [dbo].[Status] ([statusID])
但我意识到我会喜欢某种方法来强制 defaultStatusID 来自正确租户中的状态,但我不太确定最好的方法是什么?
将tenantID添加到FK似乎是错误的,因为tenantID不是该表的外部并且它会变成循环?除非它实际上那么容易?CONSTRAINT [FK_Tenant_Status] FOREIGN KEY ([tenantID], [defaultStatusID]) REFERENCES [dbo].[Status] ([tenantID],[statusID])
我想也许某种类型的约束是可行的方法,但我不太确定。
感谢您的任何帮助/评论!