我有几张表如下:
产品:是包含产品的表格
ProductInterest:是一个包含利率数据的表。该表包含ProductID,因为每个费率必须映射到产品。然后将费率与ProductDetail行配对。
关系键:ProductID
但是我现在有一个场景,我想确定每个产品的主要费率。据我所知,我有两个选择(不一定都是可行的)。
1)将主要速率位添加到ProductInterest表 2)向产品添加PrimaryInterestRateID。这当然会因为相互依赖而产生问题。
不幸的是,我不熟悉SQL,所以我很难决定是否有替代选项1,或者我是否应该坚持使用它。
提前致谢。
答案 0 :(得分:2)
我选择了这个:
将主要费率位添加到ProductInterest ,因为在这种情况下,您只能在辅助表上工作。从功能上讲,这是ProductInterest实体的一个属性。
以其他方式将PrimaryInterestRateID添加到产品,您遇到有关两个表之间循环的外键约束的问题。
答案 1 :(得分:2)
以其他方式向产品添加PrimaryInterestRateID,您对两个表之间的循环有关外键约束的问题。 (乔塔拉斯)
要阻止循环,您可以将 IsPrimary(位)列添加到 ProductInterest ,然后删除产品中的外键。
修改强>
我的一个数据库中遇到了类似的问题,并且无法通过标志解决它,所以我更改了外键约束选项:强制执行外键约束从true到false并添加了ON UPDATE ,DELET和INSERT触发两个表。