我担心我不知道我在做什么。数据库设计 - 关于效率的问题(和一般设计质量)
1:
我有一个表称为ticket
具有称为total
柱。当总数更新时,我想保留它的记录(旧总数等),所以我决定删除total
列并创建一个名为ticket_total
的表,其中列ticket_id
,total
和datetime
(最近的当然是“当前”总数)。
或
2:
然后我意识到我会在后面想给我的客户通过total
,排序票或拉手聚集总数,等等。所以,我决定,而不是报告的能力将total
列放回ticket
,并在更新总数时直接更改total
列,但首先创建一个ticket_total
行作为先前的total
的记录。
看起来版本2会非常高效,因为我不需要尽可能多地查询相关的ticket_total
表,但是我想知道你的数据库专家在那里想什么。我只是在学习数据库设计,并担心我永远不会擅长它。
谢谢。我目前使用Django的'@ transaction.commit_on_success'来包装创建两个记录的方法。你认为#2是一种“好”的数据库设计实践吗?如果没有,我有完全的灵活性来改变它。 – orokusaki 2010-10-04 03:29:55