【问题标题】:Comments table with multiple types of parents具有多种父母类型的评论表
【发布时间】:2009-03-28 21:44:04
【问题描述】:

我的网站 (ASP.NET/C#/MS-SQL 2005) 有多个允许 cmets 的部分(用户配置文件、图像页面、视频等)。我想将所有内容存储在一个 cmets 表中。

我的问题是将评论链接回其父级。用户配置文件的主键是唯一标识符,而图像和视频使用整数。我想要从评论到其父级的外键关系。

什么被认为是最好的做法?

【问题讨论】:

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


    【解决方案1】:

    我会使用连接表,每个允许 cmets 的部分一个。然后,您可以为 cmets 表使用您想要的任何键,而您的连接表只需要从您的 section 表和 cmets 表中获取标识符。

      user_profiles
      id uniqueidentifier
      ...
    
      comments
      id int
      ...
    
      user_profile_comments
      profile_id uniqueidentifier
      comment_id int
    

    【讨论】:

      【解决方案2】:

      这里有关于最佳实践的争论。我的意见是对所有事情都使用代理 ID。甚至将其用于用户配置文件,无论您是否需要。然后,您只需处理一种“模式”即可连接相关实体。如果需要,这使您可以自动化许多样板代码。即使您自动化样板,它也会更简单,更不容易出错。

      【讨论】:

        猜你喜欢
        • 2012-11-21
        • 2011-02-07
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 2016-05-30
        • 2015-11-06
        相关资源
        最近更新 更多