比如 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() 在模板来查了。
请问哪样好?
看業務的需求,如果業務中如果使用冗餘比不冗餘更方便,那麼資料庫就可以冗餘。只能說沒有完全的不冗餘,能接受某程度上的冗餘。
如果查的次數一定會大於更新的次數,那就冗餘
你可以參考「反範式設計」。