多用途表的数据库设计

Jos*_* M. 5 database database-design data-modeling

假设您有多个"事物",每个事物都附有一个或多个注释.例如,产品和订单.如何构建表格......

  1. 产品,订单,评论,ProductComment {ProductID,CommentID},OrderComment {OrderID,CommentID}
  2. 产品,订单,产品评论{ProductID,Text},OrderComment {OrderID,Text}
  3. 产品,订单,评论{ProductID,OrderID,Text}

顺便说一句,使用SQL Server 2008.

想法,意见?

the*_*dow 1

绝对只使用一张评论表,因此您不必重复评论信息(例如时间戳、flaged_for_moderation 等)。在评论中有两个字段很好,因为它清楚地表明它是一对多链接。我可能会倾向于在多个链接表上这样做,尽管我确实很欣赏当存在链接时链接表中只有行,而不是一半的值NULL。也许在一个非常大的数据库中,有更多可以注释的内容,您可能会选择链接表。