【发布时间】:2012-05-23 01:44:34
【问题描述】:
我有以下表格: - 帖子 - 文件 - 事件 - 文件
每个帖子、文件、事件、文档都可以有 cmets。
什么是更好的数据库方案,为什么?
第一个解决方案
- cmets 表(comment_id、author_id、comment)
- 4 个表来创建关系(posts_cmets(post_id, comment_id), files_cmets(file_id, comment_id), events_cmets(event_id, comment_id), documents_cmets(document_id, comment_id))
第二种解决方案
- cmets 表(comment_id、author_id、comment)
- items_cmets (comment_id, parent_type (enum['post', 'file', 'event', 'document']), parent_id)
对此有什么更好的解决方案,或者我应该使用两者中的哪一个?
【问题讨论】:
-
我更喜欢第一种解决方案,要灵活一些,因此您必须通过编辑 1 个名称(如果需要)将名称文件更改为文件,而不是在第二种解决方案中的 items_cmets 表中。 Als 尝试理解数据库规范化en.wikipedia.org/wiki/Database_normalization
标签: mysql database-design database-schema conventions