【问题标题】:Is there a way for mysql to allow 1 of 2 foreign keys to be null?mysql有没有办法允许2个外键中的1个为空?
【发布时间】:2016-07-02 19:02:05
【问题描述】:

我有一个带有 2 个外键的表,1 个指向个人表,1 个指向公司表。

我想设置它,以便 mysql 将允许任何 1 个外键为空,但如果两者都为空,则无法插入。

如果不是这样,我将在前端强制执行规则。

编辑:这与其他问题不同的是,关键可能是一个或另一个或两者兼而有之。从我在答案中读到的内容,他们只是在谈论它是一张桌子或另一张桌子,而不是两者

感谢您的宝贵时间

【问题讨论】:

标签: mysql database-design mysql-workbench


【解决方案1】:

不,不要那样做。

你需要更好的抽象。阅读表继承和派对模型。

为个人和组织提供一个表 parties 和一个 type 列。将您的外键指向此表。

你应该阅读http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/33-Polymorphic_Assocations_Objective_reference_multiple

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2021-07-15
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    相关资源
    最近更新 更多