数据库模型适用于不同产品价格范围

时间:2014-01-24 10:58:35

标签: sql database database-design

我正在设计一个金属棒价格数据库。金属棒的价格基于以下逻辑。

  • 如果酒吧是由铁制成,则按每公斤定价。
  • 如果棒材由钢制成,则按每公斤定价。
  • 如果酒吧是铝制的,价格取决于长度。
  • 为杆子定价的潜在新方法。

我遇到的问题是如何将材料与价格联系起来,并考虑两种定价规则,按重量或范围。

例如,这是我“绘制”表格的方式,所有价格都完全弥补。

+-----------+------------------+
| Material  | Price            |
+-----------+------------------+
| Iron      | $0.5             |
+-----------+------------------+
| Steel     | $0.8             |
+-----------+------------------+
| Aluminium |+--------+-------+|
|           || Length | Price ||
|           |+--------+-------+|
|           || 100mm  | $10   ||
|           || 200mm  | $18   ||
|           || 500mm  | $35   ||
|           || 1000mm | $50   ||
|           |+--------+-------+|
+-----------+------------------+

我正在使用MySQL。

我对SQL很新,所以我不知道从哪里开始。我被困了,因为我现在不知道如何在同一列中分解一对一和一对多。附加要求。

2 个答案:

答案 0 :(得分:1)

对于可扩展的设计,您可以:

金属,unit_type_id,单位,价格
铁,1,1,1.5 钢,1,1,8,0 铝,2,100,10 铝,2,200,18


使用另一个表unit_type

id,键入
1,重量(kg)
2,长度(mm)

答案 1 :(得分:1)

此模型应适用于每种新类型或价格变化。您还可以将其扩展为管理旧价格历史记录

idMaterial    material  idPriceType
-----------------------------------
1              iron        1
2              steel       1
3              alu         2


idPriceType   name     unit
---------------------------------
1             weight   kg
2             length   mm

idMaterial  price    unitForPrice
---------------------------------
1           0.5      1
2           0.8      1
3           10       100
3           18       200
3           35       500
3           50       1000