我打算为Rails中的项目创建一个定价矩阵。它应该是一个目的地和出发地点的表格,价格取决于你来到哪里并准备出发。创建定价矩阵 - sql或常量数组?
我有点不知道如何更好地做到这一点:或者在这个矩阵的db中创建一个表,或者创建一个巨大的常量数组。问题是,客户端应该能够编辑这个矩阵,所以它最有可能去数据库路线。
无论如何,这是什么模式?目的地ID,出发ID,然后价格?目标和出发ID将是包含所有可能位置的表格的外键。有没有更好的方法来做到这一点?
我打算为Rails中的项目创建一个定价矩阵。它应该是一个目的地和出发地点的表格,价格取决于你来到哪里并准备出发。创建定价矩阵 - sql或常量数组?
我有点不知道如何更好地做到这一点:或者在这个矩阵的db中创建一个表,或者创建一个巨大的常量数组。问题是,客户端应该能够编辑这个矩阵,所以它最有可能去数据库路线。
无论如何,这是什么模式?目的地ID,出发ID,然后价格?目标和出发ID将是包含所有可能位置的表格的外键。有没有更好的方法来做到这一点?
使它成为一个数据库表。
关于价格的唯一不变是他们改变。
补充:
定价(也称为产品保)是,我有很多有经验的东西。
您的客户也可能会问/或欣赏增加的定价工具,以帮助他们做正确的事情。例如,您的sw:
您可能还需要担心的生效日期为定价。即如何以协调的方式推出一套新的价格。
我会将它添加到3列表中,因为它不一定是矩阵 - 你可能不会从所有地方到所有其他地方。你想能够编辑它。一旦你完成了你的硬编码版本,你会被要求编辑它。
LeavingFrom, TravellingTo, Price
此外,随着目标列表的增长,查询性能和代码维护将成为一个因素。
我会使用两个表格,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
。
那么我的模式是否正确?只是这两个地点的ID,然后相应的价格? – corroded 2010-08-12 16:11:25
这非常有帮助。谢谢! – corroded 2010-08-12 16:26:36