如何在sql中存储博客类别

时间:2012-02-07 18:47:02

标签: asp.net sql sql-server-2008

我希望能够找到:

  • 什么是博客类别
  • 什么是帖子类别

我现在写的表定义是

CREATE TABLE blog_category_post (
   BlogID INT NOT NULL,
   CategoryID INT NOT NULL,
   PostID INT NOT NULL
)

我听说过应该添加到多对多表中的唯一索引,但我不确定如何在这种情况下添加它们,如果它甚至是正确的方法。

1 个答案:

答案 0 :(得分:1)

对于规范化架构,您需要两个表。

假设您对博客和帖子(即两者的相同类别集合)共享分类,那将是:

CREATE TABLE blog_category
        (
        blogId INT NOT NULL REFERENCES blog (id),
        categoryId INT NOT NULL REFERENCES category (id),
        PRIMARY KEY (blogId, categoryId)
        )


CREATE TABLE post_category
        (
        postId INT NOT NULL REFERENCES post (id),
        categoryId INT NOT NULL REFERENCES category (id),
        PRIMARY KEY (postId, categoryId)
        )

PRIMARY KEY约束隐式创建了一个聚集的UNIQUE索引。