SQL:使用计算字段或将其留给软件

时间:2015-08-11 10:23:21

标签: mysql database-design

我正在为体育场馆门票数据库建模。我有TICKETFANCARDEVENTSEATSECTOR个实体(以及其他实体)。有4万个座位和45个部门。价格大致或多或少地计算:

  1. EVENT有一个基本价格
  2. 价格会根据SECTOR
  3. 而变化
  4. 取决于FAN年龄,他可能有一个不可告人的折扣
  5. FAN有一个CARD,具体取决于他可以享受折扣的卡类型
  6. TICKET与除CARDSECTOR之外的所有内容都以1:1关联(但SEATSECTOR较弱,因此他可以看到其关键字)

    我应该计算数据库中的价格吗?只有我需要存储它?如果是,我应该怎么做,将其保留为TICKET中的计算字段?

    我希望我已经足够清楚了,谢谢你的每一个回答 编辑:我不希望sql代码计算它

1 个答案:

答案 0 :(得分:0)

我认为在数据库中实现该算法是个好主意,例如使用每个应用程序或Web服务中的相同算法和代码,或者某天您打算构建的任何内容。

我会创建一个存储过程来计算价格。只要您想要计算价格,就可以调用此程序。

一旦发出机票,其价格就是固定的,因此您通常会将票价存储起来。之后你可能会改变折扣,所以同样的机票会变得更便宜,但已售出的机票当然不会。也就是说,使用存储过程最初计算票价。发行票证时,用它存储当前价格。