database-design - 数据库关系循环

标签 database-design cycle relationship

数据库关系周期闻起来像糟糕的数据库设计。以下是我认为无法阻止的情况:

  • a 公司有办公地点(城市)
  • 公司有产品(巨无霸)
  • 产品在/不提供地点(沙特阿拉伯无培根汉堡)

  • 当前的设计将允许您提供 的产品没有 属于这家公司的地点是 属于本公司。

    公司
    1 - 麦当劳
    2 - 汉堡王

    地点
    1 - 纽约,1 号楼 - 麦当劳 (1)
    2 - 阿姆斯特丹,2 号楼 - 汉堡王 (2)

    产品
    1 - 巨无霸 - 麦当劳 (1)

    产品位置
    1 - 巨无霸 (1) - 阿姆斯特丹,2 号楼 (2)

    麦当劳卖巨无霸,汉堡王不卖,但他们的大楼似乎确实有:)
    当我们向产品添加同样依赖于位置的关系时,情况会变得更糟。

    我能做些什么来防止循环?
    如何保证数据库数据的完整性?

    最佳答案

    循环依赖不会自动成为“糟糕的数据库设计”。从概念建模的角度来看,如果这种依赖关系准确地表示您要建模的内容,那么它就不是“错误的”。

    不幸的是,SQL 的局限性常常使执行周期性约束变得困难或不可能。在 SQL 中,您通常必须通过以某种方式打破约束或通过在过程代码中实现规则而不是通过数据库约束来妥协。

    关于database-design - 数据库关系循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122645/

    相关文章:

    mysql - 存储修订时避免循环依赖?

    database - 数据库设计 : one or two tables to remember a user choice

    python - 如何检查循环范围的重叠(每年重叠的周期)

    jquery - 每 10 秒轮换一次背景图像 url

    node.js - 无法读取未定义的属性 'menu_id'

    php - 如何加载多级关系?

    laravel - Laravel 中的 Eloquent 关系

    mysql - 在 MySQL 中存储多对多关系的最佳方式?

    database-design - 社交网络设计中用户和帐户对象的区别?

    algorithm - 在有向图中找到循环的最佳(时间复杂度)算法是什么?