【问题标题】:DB many to many for more than one table?多对多数据库多一张表?
【发布时间】:2014-06-28 02:17:01
【问题描述】:

我有 posts 表和 content 表,它们都有 标签,为了连接它们,我想我应该使用很多-对多关系表(将存储每个 ID)。

但我想知道是否需要为每个与标签表关联的新表/内容都这样做?

所以在这种情况下,我应该有 2 个关系表:

post_tag
-> post_id
-> tag_id

content_tag
-> content_id
-> tag_id

对吗?
所以如果我有另一个表,可以说 videos 那么我会有另一个关系表吗?
video_tag
-> video_id
-> tag_id

由于我使用的是 laravel 4,belongTo 和 hasMany 可以处理查询,对吗?

【问题讨论】:

    标签: mysql sql laravel laravel-4


    【解决方案1】:

    最佳做法是为每种用法使用单独的关联表。另一种选择 - 将所有交叉点放在一个带有标志的表中以区分它们,最终将提供更深层次的索引和更昂贵的查找,但只有一个实际原因。从理论的角度来看,您已经用虚构的值混淆了主键。

    【讨论】:

      【解决方案2】:

      您可以查看多对多多态关系 (http://laravel.com/docs/eloquent#many-to-many-polymorphic-relations),因为标签可以属于帖子、内容或视频模型。事实上,Laravel 文档网站上的示例与您提出的非常相似。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 2018-11-27
        • 2021-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多