假设您想为某些Web应用程序构建数据库。这个数据库已经包含很多表格,你可能不得不在将来扩展它。关系数据库中“评论”表的最佳实践
此外,您希望最终用户能够评论数据库中的任何类型的对象。
我想找到一个解决方案,这将是足够通用的,这样我就不必每次在数据库中添加一个新表时扩展它。
我想到了以下几点:
表名:发表评论
列:
- ID:评论的ID
- USER_ID:的的ID用户发表评论
- object_table_name:选项卡其中注释对象为
- object_id:object_table_name表中已注释对象的ID。
- 文本:文本
- 日期:依据
此表之类的解决我的问题,是困扰我的唯一的事情是,它的关系方面是比较薄弱(我不能让例如,object_id是一个外键)。 另外如果有一天我需要重新命名一个表,我将不得不改变评论表中的所有有关条目。
您对这个解决方案有什么看法?有设计模式可以帮助我吗?
谢谢.-
你需要保留这些评论的历史记录吗?我想不出创建任何单独的评论表的另一个主要原因。 – jwiscarson 2010-11-03 16:38:20
每对(object_table_name,object_id)对可以有多个注释吗?如果它始终是1:1,那么只需将注释作为额外列包含在object_table_name本身上。如果是1:N,那么需要一个单独的表格。 – 2010-11-03 20:41:40