在关系表中使用primary

时间:2012-08-31 17:14:05

标签: mysql sql

最好在一个例子中解释我的问题。这是样本表(InnoDB):

- 帖子

  • ID
  • 标题
  • title_slug
  • 含量

- 标签

  • ID
  • 名称
  • name_slug

- post_tag_relation

  • 帖子ID
  • TAGID

假设我正在使用标签创建简单的帖子系统,并插入post_tag_relation,哪些帖子有哪些标签。 postID和tagID从其表中引用。这是我的问题,我应该在post_tag_relation中指定id(主键)还是有更好的方法来创建它?你有什么建议创建post_tag_relation表?

1 个答案:

答案 0 :(得分:1)

您无需为post_tag_relation表指定单独的ID字段。 postID和tagID的组合应该是唯一的,并且可以形成compound key。 posts和tags表形成多对多关系,并使用联结表(如post_tag_relation表)来关联它们。如果您不想存储有关标记和帖子之间关系的其他信息(例如,指示标记何时与帖子关联的时间戳),那么post_tag_relation表中您需要的唯一字段是帖子中的外键和标签表(即postID和tagID)。