简单的表设计问题

hol*_*den 7 sql postgresql database-design ruby-on-rails

我试着提前一点思考,如果可能的话,避免自己一些额外的痛苦.

我在过去的应用程序中遇到过这个问题,并且通常选择了最冗长的方法,但是希望得到其他几个方面的意见.

如果你有一个如下所示的基本表,那么包括一个字段是明智的和/或更有效的,该字段包括可以从另外两列中找到的信息的计算.IE:

+-----+---------+------------+-------+--------+-------+
| id  | room_id | bookdate   | price | people | total |
+-----+---------+------------+-------+--------+-------+
| 414 | 132     | 2010-03-01 | 14.55 | 2      | 29.10 |
| 415 | 132     | 2010-03-02 | 14.55 | 2      | 29.10 |
| 416 | 132     | 2010-03-03 | 14.55 | 2      | 29.10 |
+-----+---------+------------+-------+--------+-------+
Run Code Online (Sandbox Code Playgroud)

最后一个字段中的信息可以从前两个字段的产品中提取出来,因此它是多余的,不必要的.有没有可能仍然值得拥有它的情况?

Rob*_*ner 6

根据经验,除非存在性能问题,否则我不会存储可以计算的值(尤其是可以轻松计算的值),我需要节省一些处理时间.

这是性能和存储之间的经典权衡.我建议计算值,直到你需要提升性能.