2013-01-22 37 views
0

我的表在我的数据的基础上与这些规格:设置需求外键在数据库

  • 一个PK
  • 与外键
  • 3场的一些统计信息字段

问题在这里:

在每一行中只会填充一个FK字段。 什么是A或B的最佳解决方案?

A-定义3 FK我的表

B-定义一个字段作为FK_TYPE和一个字段作为DEMAND_FK和使用检查上FK_TYPE的结果

+0

由于我的名誉低,我不能共享这些表的架构! –

+0

“我不能共享这些表的模式” - 你可以将它们编写出来,然后将它们作为代码编辑成问题。我怀疑你试图做的是给我们一个图像 - 这比有脚本的*少*有用。 –

回答

2

选项A - 如果你得有这个设计,您需要为每个外键分别设置一个列。没有(标准)方法来定义“条件”外键。

如果您的系统支持检查约束,请包含一个检查约束,以使其中一个FK列不为null。如果它不支持检查约束,则添加强制执行相同检查的触发器。

+0

感谢这个关键词! “有条件的外键”。这是我需要用Google搜索我的问题! –

1

如果我没有错,B在任何关系数据库中都是不可能的。外键只能引用表的一个主键。如果使用B,则必须在应用程序级别添加约束。否则使用A.