对于多个表,DB多对多?

时间:2014-05-10 10:26:01

标签: mysql sql laravel laravel-4

我有帖子表和内容表格,并且两者都有标记,为了连接它们,我想我应该使用多个 - to-many关系表(将存储每个id')。

但是我想知道是否需要为每个与标签表关联的新表/内容执行此操作?

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

post_tag
- > POST_ID
- > TAG_ID

content_tag
- >的content_id
- > TAG_ID

正确?
所以,如果生病了另一张桌子,让我们说视频,那么我还会有另一张关系表吗? 的 video_tag
- > VIDEO_ID
- > tag_id

因为我和laravel 4一起工作,所以很好地处理这些问题吗?

2 个答案:

答案 0 :(得分:1)

最佳做法是为每种用法设置单独的关联表。替代方案 - 将一个表中的所有交叉点与一个标志区分开来,最终会给出更加昂贵的查找更深层索引,但只有一个实际原因。从理论的角度来看,你已经用主要价值观混淆了主键。

答案 1 :(得分:0)

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