我有一个包含两个表的数据库:
条目表包含每个都有一个或多个标签的帖子。问题是,每个帖子可以有任意数量的标签。换句话说,我不能拥有'tag1','tag2'等列并执行LEFT JOIN。
我应该如何设置条目,以便每个帖子可以包含任意数量的标签?
答案 0 :(得分:11)
您需要一张映射表。
创建一个名为entries_tags
的表,其中包含两列:entry_id
和tag_id
,两个条目都有一个多键。
这称为多对多关系。
答案 1 :(得分:3)
你也可以这样做,其中除了有一个交汇点/映射/交集表,你有一个标签列表可以标记:
entries table:
post_id: 3539744, .... tags: sql, database, database-design, tags, data-modeling
如果在拉出条目的关联标记时无法获得使用联结表的性能影响。当然,这里必须特别小心,因为你正在处理非规范化数据。