【问题标题】:MySQL: Link tablesMySQL:链接表
【发布时间】:2011-07-09 00:10:34
【问题描述】:

我一直在为网站创建我的第一个数据库,并创建了下面的图表来工作。这看起来是否适用于业务和类别以及类别和子类别之间的多对多关系?

你能看出它有什么问题吗?

【问题讨论】:

  • @PachinSV:ERD 一直对我可见——刷新你的浏览器标签

标签: mysql database-design data-modeling erd


【解决方案1】:

看起来不错,但 category_link_table 可能有问题。除非您的业务需求允许链接到类别或子类别,否则不要在链接表中同时存储主类别和子类别 ID。仅存储子类别 ID。

如果两者都存在,您可能最终会遇到 categoryID/subcategoryIDs 不匹配的情况,即您从类别“A”和类别“B”中的子类别“p”中获得了一些东西。

【讨论】:

    【解决方案2】:

    几个cmets:

    1. 我认为不需要 Link_table 中的 ID 字段。 business_id,category_id 应该是唯一的。

    2. 您的子类别表设置看起来很奇怪,您有一个链接表。我原以为每个子类别都会有一个父类别的字段(category_id)。如果事情是有一个带有 parent_catagory_id 的目录表并在一个表上进行自我连接,我更喜欢这种类型。

    【讨论】:

    • 使用类别链接表,我已经这样做了,以便子类别可以属于多个父类别。假设会计师既属于商业服务,也属于金融服务。
    • 好的。虽然在那种情况下我可能会选择一个标签系统,所以你可以有很多适用的标签。因此,在您的示例中,您可以有会计、商业服务、金融服务、税务、审计。我不是在批评,我只是在胡思乱想。
    • 别担心,感谢您的意见。我同意并已从我的链接表中删除了 ID 字段,我将研究标记。谢谢。
    【解决方案3】:

    一般来说,我会为您的表确定命名约定。我更喜欢“business”而不是“business_data”——它反映了业务领域,而不是技术问题。

    我还会以不同的方式命名您的链接表 - 通常,“business_category”更简洁,“category_subcategory”也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2013-03-09
      • 2011-11-25
      • 2013-07-29
      • 2014-06-28
      • 2012-02-12
      • 1970-01-01
      相关资源
      最近更新 更多