数据库设计,最佳实践,需要建议

lit*_*had 0 mysql database-design

我有这个数据库,有一个名为"徽章"和"主题"的表,我在"主题"中有一个标记字段,名为"is_canceled"bool值,现在由于某种原因有人建议我在"徽章"中有一个字段叫做"徽章" cancel_subject_count",其值与...相同

"SELECT SUM(is_canceled) as cancel_count FROM subjects WHERE is_canceled = 1 AND badge_id = ".$some_badge_id
Run Code Online (Sandbox Code Playgroud)

他说的是表现的原因之一,最好是直接取值,而不是首先求和

你们有什么感想?我应该有这个领域吗?为什么?

谢谢

Mar*_*ade 5

这称为非规范化.为初始数据库设计执行此操作可能会在以后节省您的时间和精力,但可能是过早优化.你可能最好不要添加canceled_subject_count字段,如果经过一些分析后,你在计算徽章的取消主题时会发现一个测量的性能瓶颈,那么你可以添加该字段.