用于保持邮资价格的更好的数据库模型

时间:2013-06-07 17:02:51

标签: ruby-on-rails database postgresql database-design

我想创建一个Postage_costs表来保存邮资费用,每个postage_cost都有一个名称,例如大型商品,根据地理位置有不同的费用(标准价格和快递邮费),所以Large_Item可能看起来像;

Name: Large Item
Cost: UK:
         standard: 5
         express: 10
      Europe:
         standard:10
         express
      R.o.w:
         standard: 20
         express: 30

我最初将Name作为一个字符串,并将其作为一个文本字段,其中包含了哈希的序列化内容,但创建新国家及其费率变得有点困难。我宁愿把它全部放在一张桌子里,那么还有更好的方法吗? 我正在使用rails和PostgreSQL

2 个答案:

答案 0 :(得分:1)

序列化有一些缺点。例如,您无法在序列化内容上创建数据库索引以优化查询。此外,应用程序验证将变得一团糟。

我的建议是在你的桌子上加2个额外的列。所以有类似的东西:

postages
  name
  country
  standard_price
  express_price 

答案 1 :(得分:0)

每个国家都有一个条目。

name: Large Item
country: UK
standard_price: 5
express_price: 10

name: Large Item
country: Europe
standard_price: 10
express_price:

name: Large Item
country: Europe
standard_price: 20
express_price: 30