EF Weight-Zone-Price的数据库结构建议

时间:2017-08-28 11:19:09

标签: sql database entity-framework

请推荐一个有助于消除大量重复元素的数据库结构。 我有区域,重量和价格实体。我想在我的数据库中有一个费率列表。区域和重量对是指一个价格。 例如A区,0.5公斤的价格为100.区域A 1公斤的价格为122。 问题是我的Weight实体从0.5到68变化,步长为0.5(136项),我有大约10个区域,每个区域都有特定重量的价格。 目前我使用的设计在我看来是预期的。

Zone | Weight | Price

A| 0.5 |100

A| 1 |123

A| 1.5 |128

(till weight is 68 and afterwards for each zone)

B| 0.5 |140

我认为一个选项是将权重和区域对分组在一个表中,并在另一个表中使用价格和ID组合,但这不会产生很大影响,是吗?

1 个答案:

答案 0 :(得分:0)

我会创建2个表区域权重和价格,并使用权重表来映射区域的价格。这样可以减少数据量。

create table zoneweight (zoneID int primary key, zone varchar([maxlengthofzonename]), weight decimal(2,2));
create table price(price decimal(10,2), fk_zoneID int,
constraint fk_price foreign key (fk_zoneID) references zoneweight(zoneID));