具有相互依赖性的SQL表

时间:2015-02-25 11:47:22

标签: sql sql-server

我有几张表如下:

enter image description here

产品:是包含产品的表格

ProductInterest:是一个包含利率数据的表。该表包含ProductID,因为每个费率必须映射到产品。然后将费率与ProductDetail行配对。

关系键:ProductID

但是我现在有一个场景,我想确定每个产品的主要费率。据我所知,我有两个选择(不一定都是可行的)。

1)将主要速率位添加到ProductInterest表 2)向产品添加PrimaryInterestRateID。这当然会因为相互依赖而产生问题。

不幸的是,我不熟悉SQL,所以我很难决定是否有替代选项1,或者我是否应该坚持使用它。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我选择了这个:

将主要费率位添加到ProductInterest ,因为在这种情况下,您只能在辅助表上工作。从功能上讲,这是ProductInterest实体的一个属性。

以其他方式将PrimaryInterestRateID添加到产品,您遇到有关两个表之间循环的外键约束的问题。

答案 1 :(得分:2)

  

以其他方式向产品添加PrimaryInterestRateID,您对两个表之间的循环有关外键约束的问题。   (乔塔拉斯)

要阻止循环,您可以将 IsPrimary(位)列添加到 ProductInterest ,然后删除产品中的外键。

修改

我的一个数据库中遇到了类似的问题,并且无法通过标志解决它,所以我更改了外键约束选项:强制执行外键约束从true到false并添加了ON UPDATE ,DELET和INSERT触发两个表。