SQL是否需要链接/桥接表?

时间:2011-06-13 10:32:24

标签: sql-server

我目前在SQL Server数据库中有两个连接表,一个包含新闻项(newsTab)和一个表(usrCom),它为每篇文章捕获多个用户注释。

我想添加另一个信息表(infoTab),它也允许用户发表评论,但我希望使用现有的评论表(usrCom)来存储这些信息。

如何创建生成唯一ID的链接/桥接表,以便我知道评论属于哪个表(newsTab / infoTab)。

注意:我编辑了这条消息,希望能让它更清晰一些

第一张表(newsTab)

NewsId    NewsContent
---------------------
1         blah blah
2         and so on

第二张表(infoTab)

infoId    InfoContent    
---------------------
1         some info
2         more stuff

评论表(目前为止)

commentId    linksTo   Comment
------------------------------
1            1         user input
2            1         random rant

'linksTo'是第一个表中项目的foriegn键,所以我不能只添加一个类型列,如果新表中不存在具有相同ID的行,我会在外键列上发生冲突。因此,需要基于正在评论的表和Id来生成新的生成的外键。

2 个答案:

答案 0 :(得分:1)

为什么不只是usrCom的“类型”列

答案 1 :(得分:0)

如果您自动生成commentId(设置为主键),那么您将不会在usrCom表中获得任何重复项。此外,如果要为新闻和信息表保留一个表以供注释,则应添加一个新列以区分哪些表的注释(称为类型)。然后在查询中,确保指定要过滤结果的类型。

查看newsTab的所有评论:

      select * from usrCom 
      where type='newsTab'