除了一个之外的所有外键都是NULL

时间:2010-01-22 13:50:48

标签: database database-design orm polymorphic-associations

在表中使用一组外键的技术的名称是什么?对于给定的行,除了一个外的所有外键都是NULL?

换句话说,每行需要一个外键到n个不同的可能表中的一个(并且只有一个),所以你实际上拥有所有必需的外键,但除了一个外都是NULL。

(Django的用户可能会认为这是使用通用外键的替代方法)

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

使用示例会更容易,但解决这个问题的常用方法就是为这些表找到一个通用的超类型。假设我们有表Book, Article, Magazine,现在表必须有这些表的外键。使用常见的超类型Publication可以解决这个问题。 See here for the model 以及类似的问题/答案。