数据库需不需要冗余字段?

比如 Topic 表一个回复数的字段, Reply 表有一个楼层的字段。

(我用的是 Flask Sqlchemy )

这样每次增加一条回复,查一次写两个表

t = Topic.query.get(1)
r = Reply(楼层=t.回复数+1)
t.回复数 += 1

这样可以直接用 t.回复数 在模板查询,

如果去掉这个字段,查两次写一次

t = Topic.query.get(1)
r = Reply(楼层=t.reply.count())

但是这样只能用 t.reply.count() 在模板来查了。

请问哪样好?

阅读 3.8k
3 个回答

看业务的需求,如果业务中如果使用冗余比不冗余更方便,那么数据库就可以冗余。只能说没有完全的不冗余,能接受一定程度上的冗余。

如果查的次数肯定会大于更新的次数,那就冗余

你可以参考“反范式设计”。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题