关系数据库中"注释"表的最佳实践

Ale*_*dre 5 sql design-patterns

假设您要为某些Web应用程序构建数据库.此数据库已包含许多表,您可能必须在将来扩展它.

此外,您希望最终用户能够对数据库中的任何类型的对象进行注释.

我想找到一个足够通用的解决方案,这样我每次在数据库中添加新表时都不必扩展它.

我想到了以下几点:

表名:评论

:

  • id:评论的ID
  • user_id:发表评论的用户的ID
  • object_table_name:注释对象所在的表
  • object_id:object_table_name表中注释对象的id.
  • 文字:文字
  • 日期:日期

这个表解决了我的问题,唯一困扰我的是它的关系方面相当弱(例如我不能使object_id成为外键).此外,如果有一天我需要重命名一个表,我将不得不更改注释表中的所有相关条目.

您如何看待这个解决方案?是否有设计模式可以帮助我?

谢谢.-

Nic*_*uet 5

那不是更干净吗?

comment_set

  • ID

评论

  • ID
  • comment_set_id - >外键comment_set
  • 用户身份
  • 日期
  • 文本

现有的表foo

  • ...
  • comment_set_id - >外键comment_set

现有的桌子

  • ...
  • comment_set_id - >外键comment_set