【问题标题】:FuelPHP: extra columns in a Many-to-Many connecting table possible?FuelPHP:多对多连接表中的额外列可能吗?
【发布时间】:2014-05-30 11:54:14
【问题描述】:

假设我有一张名为“people”的桌子,里面坐满了很多人。我还有一张名为drinks 的桌子,里面摆满了不同的饮料。

我想将“人员”表中的人员与他们订购的各种“饮料”相关联。

当然,很多人可以点很多不同的饮料,包括别人点的同一种饮料,因此我认为值得多对多的关系。

但是,我还想包括每个人订购饮料的顺序 order。我认为这也应该进入带有“person_id”的多对多连接表和“drink_id”,但我想知道这是否是正确的数据库结构......

【问题讨论】:

    标签: php mysql sql many-to-many fuelphp


    【解决方案1】:

    没有理由不这样做。您的直通表可以包含额外的列以提供有关关系的元信息。 Fuelphp 的唯一限制是您必须在 peopledrinks 之间有第三个模型才能通过模型​​访问额外信息。

    例如:drink_people 是直通表。

    'people' has many 'drink_people' 'drink_people' has one 'drink', has one 'people' 'drink' has one 'drink_people'

    【讨论】:

    • 不会是饮料有很多drink_people吗?因为很多人可以点同样的饮料。
    • 那么有很多,我的错。您应该选择适合您需求的实际关系类型,但想法保持不变。
    【解决方案2】:

    请注意,您可以同时拥有两者,一个用于直接访问相关对象的 many_many,以及一个与直通表的一对多以访问关系数据。

    目前唯一的缺点是这意味着两个查询,因为访问 many_many 不会为关系记录创建对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多