可以保存重复值的外键

时间:2014-03-18 22:19:59

标签: sql sql-server-2008

下表中的product_rate_id列需要从另一个表中作为外键引用。 但是,product_rates TABLE必须包含product_rate_id的重复值。 (遗留系统,不要问为什么)

CREATE TABLE product_rates
(
    row_id             INT  IDENTITY(1,1) NOT NULL,
    product_rate_id    INT NOT NULL,
    START_DATE         DATETIME NOT NULL,
    end_date           DATETIME,
   unit_rate          NUMERIC(18,6)
)

所以问题是:你有一个被另一个表引用为外键的列包含重复值吗? 有没有解决这个问题?

1 个答案:

答案 0 :(得分:4)

  

你有一个被另一个表引用为外键的列包含重复的值吗?

否 - 外键约束必须引用唯一键。

您仍然可以在相关表格中保留(非外键)对product_rate_id值的引用,但您必须决定您想要的哪个相关记录查询(我假设使用start_dateend_date之间的有效日期。