【发布时间】:2017-07-21 09:36:12
【问题描述】:
我喜欢在 3 个表之间创建一个“条件”(外键)关系。就我而言,它是这样的(当然它要复杂得多,但我已经将其剥离以演示问题情况):
Table [ItemTable]
Column int Id (PK)
Column str ItemName
Table [ItemGroup]
Column int Id (PK)
Column str GroupName
Table [Settings]
Column int Id (PK)
Column str RefersTo ('I' means item, 'G' means item group)
Column int Reference (foreign key depending on 'RefersTo')
现在的目标是创建具有如下约束的关系:
Settings.Reference refers to ItemTable.Id when Settings.RefersTo equals 'I'
Settings.Reference refers to ItemGroup.Id when Settings.RefersTo equals 'G'
No relation in case if RefersTo is empty (so no constraint in this situation)
这听起来像是在这里或那里引用的关系,但我不知道如何使用 MS SQL 来实现。我通常使用 Management Studio 中的图形设计器来创建和修改表格定义。
感谢任何帮助。提前谢谢你。
【问题讨论】:
-
为什么不用referenceI 和referenceG 列呢?
-
你当然不能这样做
-
标签: sql sql-server database foreign-keys relationship