2010-08-12 33 views
0

我打算爲Rails中的項目創建一個定價矩陣。它應該是一個目的地和出發地點的表格,價格取決於你來到哪裏並準備出發。創建定價矩陣 - sql或常量數組?

我有點不知道如何更好地做到這一點:或者在這個矩陣的db中創建一個表,或者創建一個巨大的常量數組。問題是,客戶端應該能夠編輯這個矩陣,所以它最有可能去數據庫路線。

無論如何,這是什麼模式?目的地ID,出發ID,然後價格?目標和出發ID將是包含所有可能位置的表格的外鍵。有沒有更好的方法來做到這一點?

回答

2

使它成爲一個數據庫表。

關於價格的唯一不變是他們改變。

補充:

定價(也稱爲產品保)是,我有很多有經驗的東西。

您的客戶也可能會問/或欣賞增加的定價工具,以幫助他們做正確的事情。例如,您的sw:

  • 可能有報告顯示爲定價人員設計的價格。
  • 上的最高,最低的價格報告(幫助捕捉數據輸入錯誤)
  • 退房的定量信息可視化設計理念如何在視覺上顯示的價格爲目的對
  • 確保目標/出發對只添加一次。 (在其他方向上沒有重複。)

您可能還需要擔心的生效日期爲定價。即如何以協調的方式推出一套新的價格。

+0

那麼我的模式是否正確?只是這兩個地點的ID,然後相應的價格? – corroded 2010-08-12 16:11:25

+0

這非常有幫助。謝謝! – corroded 2010-08-12 16:26:36

0

我會將它添加到3列表中,因爲它不一定是矩陣 - 你可能不會從所有地方到所有其他地方。你想能夠編輯它。一旦你完成了你的硬編碼版本,你會被要求編輯它。

LeavingFrom, TravellingTo, Price 

此外,隨着目標列表的增長,查詢性能和代碼維護將成爲一個因素。

1

我會使用兩個表格,Location和TravelPrice。

Location 
---------- 
LocationID --PK 
Name 

TravelPrice 
------------- 
TravelPriceID --PK 
DepartureLocationID --FK to Location 
DestinationLocationID --FK to Location 
Price 
StartDate --date the price is effective from 
EndDate --date the price is effective to (or NULL) 

這可以讓你保持歷史價格,用於報表,賬單等重要理想情況下你會對TravelPrice表,確保觸發器,有沒有間隙或重疊的日期爲給定DepartureLocationID/DestinationLocationID組合,並且只有一條記錄的NULL對爲EndDate