将外键链接到唯一元素

时间:2014-03-05 09:26:15

标签: mysql sql database

我有一个包含促销代码的列表。我有另一个列表,其中包含我想要与促销代码链接的项目。 对我来说重要的约束是每个项目应该只链接到一个促销代码。在项目中生成促销代码很容易。我的问题是在项目之前创建了促销代码列表 - 所以我不知道在尝试保存修改之前是否分配了促销代码,在这种情况下它可能会抛出异常。如何解决MySQL的问题?

1 个答案:

答案 0 :(得分:0)

第1步:您的promocode表应至少有2列promo_id,promocode。

第2步:你的项目表应该有一个promo_id列,其中包含promocode表中的promo_id。

步骤3:根据promo_id创建外键(项目表为子表,promocode表为主表)

注意:如果项目表中存在promo_id且promocode表中不存在,则会出错,在这种情况下,您需要先在promocode表中插入该promocode,或者需要从项目表中删除。

步骤4:在promocode表中的promocode列上创建唯一索引。

注意:如果有任何重复的promocode,那么它将不允许首先使其成为唯一。

步骤5:在项目表中的(item_id,promo_id)列上创建组合唯一索引。

注意:如果基于这两列有任何重复记录,那么它将不允许首先使其成为唯一。

现在你可以按照自己的意愿继续。

如果未满足您的要求,请分享更多信息。