如何创建视图以获取从另一个表计算的列值

时间:2013-03-15 17:22:29

标签: sql view derby calculated-columns

我正在做一些预订系统,我已经提出了几个表,其中包括下面的三个表及其关系。

ROOM_PRICES
  ROOM_TYPE VARCHAR (10), # e.g Suite
  ROOM_CAPACITY INTEGER,  # e.g 3
  ROOM_PRICE INTEGER,     # e.g 50
  Primary Key ( ROOM_TYPE, ROOM_CAPACITY);

ROOMS
  ROOM_NUMBER VARCHAR (3) PRIMARY KEY, # e.g A10, B21
  ROOM_TYPE VARCHAR (10),
  ROOM_CAPACITY INTEGER,
  IS_RESERVED BOOLEAN DEFAULT FALSE,

RESERVATIONS
  RESERVATION_CODE INTEGER NOT NULL PRIMARY KEY  GENERATED ALWAYS AS IDENTITY  
                                                   (START WITH 1, INCREMENT BY 1),
  ROOM_NUMBER VARCHAR (3) NOT NULL,
  RESERVATION_TIMESTAMP TIMESTAMP NOT NULL,
  START_DATE DATE NOT NULL,
  END_DATE DATE NOT NULL,
  TOTAL_PRICE INTEGER NOT NULL, # the value I'm looking for
  CONSTRAINT RESERVATION_UNQ_TIMESTAMP UNIQUE (RESERVATION_TIMESTAMP),
  CONSTRAINT RESERVATION_ROOM_FK FOREIGN KEY (ROOM_NUMBER) REFERENCES ROOMS 
                                                                     (ROOM_NUMBER)

考虑到您拥有room_number,我如何获得预订的总价。我还读到我不应该将total_price列存储在数据库中,而是在视图中或作为计算列获取。我在不了解SQL的情况下进行了数据建模,以了解程序和功能。

那么有人可以帮助我获得总价格的最佳方式,是否存储,或者我是否必须以某种方式更改模型......

我正在使用德比。而现在没有什么比优惠券更好,但价格可能会在未来发生变化,但不应因报道而改变已经保存的预订。我只想根据房间类型和容量以及逗留时间计算一次预订的total_price。价格是每晚。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的答案,但这个link拓宽了我的思路。感谢您的建议