2010-08-12 67 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