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