我的网站 (ASP.NET/C#/MS-SQL 2005) 有多个允许评论的部分(用户配置文件、图像页面、视频等)。我想将所有内容存储在一个评论表中。
我的问题是将评论链接回其父级。用户配置文件的主键是唯一标识符,而图像和视频使用整数。我想有一个从评论到其父级的外键关系。
什么被认为是最好的做法?
我的网站 (ASP.NET/C#/MS-SQL 2005) 有多个允许评论的部分(用户配置文件、图像页面、视频等)。我想将所有内容存储在一个评论表中。
我的问题是将评论链接回其父级。用户配置文件的主键是唯一标识符,而图像和视频使用整数。我想有一个从评论到其父级的外键关系。
什么被认为是最好的做法?
这里有关于最佳实践的争论。我的意见是对所有事情都使用代理 ID。甚至将其用于用户配置文件,无论您是否需要。然后,您只需处理一种“模式”即可连接相关实体。如果需要,这使您可以自动化许多样板代码。即使你不自动化样板,它也会更简单,更不容易出错。
我会使用连接表,每个允许评论的部分一个。然后,您可以为评论表使用您想要的任何键,而您的连接表只需要从您的部分表和评论表中获取标识符。
user_profiles
id uniqueidentifier
...
comments
id int
...
user_profile_comments
profile_id uniqueidentifier
comment_id int