2013-03-15 11 views
0

我正在做一些預訂系統,並且我已經提出了幾個表格,其中包括以下三個表格及其關係。如何創建一個視圖,以獲得從另一個表中計算出的列值

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) 

假如您有房間號碼,我將如何獲得預訂總價。我也讀過,我不應該有total_price列存儲在數據庫中,但在視圖或作爲計算列獲得。我在不瞭解太多SQL的情況下進行了數據建模以瞭解程序和功能。

所以有人可以幫助我什麼來獲取總價格最好的辦法並詢問是否保存與否,還是我不得不改變莫名其妙模型...

我使用的德比。目前沒有任何優惠券,但價格可能在未來發生變化,但不應因報告製作而改變已保存的預訂。我只是想根據房間類型,容量和住宿時間計算一次預訂的總價。價格是每晚。

+1

哪個DBMS是? DB2?德比? – 2013-03-15 17:34:55

+0

答案與「數據庫問題」幾乎總是一樣,是「取決於」。這是功課嗎?你應該定義什麼總價*意味着*。預訂期間的房價總計是多少?在不同的日子,房間的價格是不同的如果用戶有優惠券怎麼辦?等等... – 2013-03-15 17:36:01

+0

你的房間表沒有IsSmoking_YN,它不會是一個好的預訂系統。 LOL 總的來說,您的預訂系統的數據模型有點太簡單了,我不確定您只是想爲實踐或實際產品編寫代碼。 – ljh 2013-03-15 18:20:57

回答

0

這不是一個真正的答案,但是這個link擴大了我的想法。感謝您的建議

相關問題