在以下架构中:
Collections
Upvotes
Reports
Upvotes
Reviews
Upvotes
Run Code Online (Sandbox Code Playgroud)
我很想有一个Upvotes
表,一个单一的"entityId"
列存储要么CollectionId
,ReportId
或ReviewId
。还将有一个枚举用于Type
存储collection
, report
, 或review
。
该entityId
会一直是必需的,而逻辑将始终确保刀片在每个实施唯一性type
。
这样做的好处是添加另一种类型只是扩展枚举的问题。一切都将生活在一张没有冗余的桌子上。
成本似乎是逻辑方面增加的复杂性,它包含在我的应用程序逻辑中将新实体插入表中的一个地方。
实际上,这种方法有什么问题吗?避免这种情况的其他原因是什么?