在表中使用一组外键的技术的名称是什么?对于给定的行,除了一个外的所有外键都是NULL?
换句话说,每行需要一个外键到n个不同的可能表中的一个(并且只有一个),所以你实际上拥有所有必需的外键,但除了一个外都是NULL。
(Django的用户可能会认为这是使用通用外键的替代方法)
答案 0 :(得分:6)
您所描述的设计术语是 Exclusive Arc 。
相反,我更喜欢创建一个引用n个不同父表的公共超级表的外键。
请参阅我关于多态关联的其他答案:
答案 1 :(得分:2)
使用示例会更容易,但解决这个问题的常用方法就是为这些表找到一个通用的超类型。假设我们有表Book, Article, Magazine
,现在表必须有这些表的外键。使用常见的超类型Publication
可以解决这个问题。 See here for the model 以及类似的问题/答案。