具有多种父母类型的评论表

时间:2009-03-28 21:44:05

标签: asp.net sql-server foreign-keys primary-key

我的网站(ASP.NET/C#/MS-SQL 2005)有多个部分允许评论(用户个人资料,图片页面,视频等)。我想将所有内容存储在一个注释表中。

我的问题是将评论链接回其父级。用户配置文件的主键是uniqueidentifier,而图像和视频使用int。我希望从评论到其父母有一个外键关系。

对此最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

这里有关于最佳做法的争论。我的意见是使用代理id来做所有事情。无论您是否需要,甚至可以将其用于用户个人资料。然后,您只需处理一个“模式”来连接相关实体。这使您可以根据需要自动化大量样板代码。即使你自动化样板文件,它也会更容易编写,并且不易出错。

答案 1 :(得分:1)

我会使用连接表,每个允许注释的部分一个。然后你可以使用你想要的任何键作为注释表,你的连接表只需要从你的节表和你的注释表中获得标识符。

  user_profiles
  id uniqueidentifier
  ...

  comments
  id int
  ...

  user_profile_comments
  profile_id uniqueidentifier
  comment_id int