数据库标记结构

时间:2010-04-28 14:56:43

标签: sql

我的数据库中有三个表。新闻,评论和教程。我想实现标记功能。

之前我通过使用标签表来定义我的标签,以及具有类型(新闻,教程,评论),itemId和tagId的查找表来完成此操作。

这个工作正常,但对于我的新网站,我希望表之间有PK FK关系(因为我使用linq到实体)。

我该怎么做?标签查找表不能作为新闻,评论和教程的外键,因为当我向查找表添加一行时,所有三种类型都需要存在一个值!

最好的办法是什么?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

News
NewsID      int auto increment/identity pk
....

Reviews
ReviewID    int auto increment/identity pk
....

Tutotials
TutorialID  int auto increment/identity pk
....

Tags
TagID       int auto increment/identity pk
.....

TagUsage
TagUsageID  int auto increment/identity pk
TagID           fk to Tags.TagID
NewsID          allows nulls fk to News.NewsID
ReviewID        allows nulls fk to Reviews.ReviewID
TutorialID      allows nulls fk to Tutotials.TutorialID