需要在另一列

时间:2018-05-04 13:18:58

标签: mysql

我们需要在另一列的基础上添加外键约束。正如您在下面的屏幕截图中看到的,我们有列refer_idreference_type。我们需要根据列refer_id中包含的值在列reference_type上添加约束。我们将始终拥有两个数据类型ENUM的值:ManualUser

如果reference_type的值为Manual,我们需要将外键添加到主键列为{{1}的表refer_id上的reference_detail列}。如果id的值为reference_type,那么我们需要将外键添加到主键为User的表refer_id上的users列。< / p>

请帮助我如何根据这些条件添加约束。

请参阅以下屏幕截图中的表格结构。

screenshot

1 个答案:

答案 0 :(得分:0)

您无法添加条件外键(至少在MySQL中没有)。表上的外键只能引用一个主列,即使你可以(在一些RDBMS中)它也被认为是一种不好的做法。

您可以创建两个子表,它们引用每个父表reference_detail(ENUM:手动)和用户(ENUM:Users)。

它比您的方法更清晰,更容易查询。这是我可以用你所描述的数据库结构做的。

希望这有帮助。