【问题标题】:Enforcing complicated constraint in MySQL DB在 MySQL DB 中执行复杂的约束
【发布时间】:2016-02-10 10:59:34
【问题描述】:

假设我有三个实体:

  • 项目
  • 章节
  • 活动

我想知道是否可以在我的数据模型中强制执行以下约束:

  • 一个项目包含零个或多个部分
  • 一个部分属于一个项目
  • 一个部分包含零个或多个活动
  • 一项活动属于一个项目或该项目中的一个部分

对这些约束建模的最佳方法是什么,尤其是最后一个?

【问题讨论】:

    标签: mysql database-design database-schema data-modeling


    【解决方案1】:

    那些是实体之间的关系。您应该在表之间创建一个FOREIGN KEY 来描述这种关系或基数。

    例如,Section 表应该有一个引用 Project 表的 FK,因为这些表之间存在 1 .. * 关系。

    【讨论】:

    • 假设我有一个属于项目 X 的​​活动,并且有两个部分属于项目 X,另一个属于项目 Y。如何强制执行活动可能不属于的约束到属于项目 Y 的部分?
    猜你喜欢
    • 2022-11-17
    • 2011-09-07
    • 1970-01-01
    • 2020-08-15
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多