我需要存储一些与某些实体相关的评论标志。每个审查标志只能与单个实体属性组相关。例如,表Parents
有一个ParentsStatus
标志,表Children
有一组ChildrenStatus
标志。
在当前的设计方案中,我有三个表格:
ReviewTypes
:存储标志和它们相关的属性。ReviewPositions
:存储标志可以具有的值。Reviews
:存储交易数据,实际评论。它就像 UsersToFlags:数据库行中的标志,最佳实践。
问题是我被拒绝了,不需要有Reviews
表格,最好只在每个实体上存储这个实际的评论数据。例如添加一个额外的列Parents
来保存ParentsStatus
。他们认为这是一个更简单的解决方案,并且将数据分离出来对于外部场景来说只是“矫枉过正”。
我不喜欢这个想法,因为这意味着每次我们想要添加一个新的审查标志时,我们都需要更新核心实体表以保存该标志。
空间不是问题。
人们有什么强烈的意见吗?
编辑:
此评论适用于三个答案。共识是关系方法是最好的,但我认为我需要从一些非常基本的阅读了解 EAV 数据库模型的最佳初学者资源中阅读更多关于 EAV 模型的内容?及其相关链接似乎不是超级简单,我不想给自己挖个洞。感谢wildplasser。一旦我阅读更多内容,我将返回。