2011-12-25 62 views
0

我有一些Item_ID唯一的项。每个项目组合都会创建一个具有“价格”值的新项目。DB中的数据结构字段

例如,项目编号:1,5,7具有$ 10.00和项目数的价格值:1,10,2有$ 20.00的

的价格值我想价格的值存储在数据库中并根据请求提取正确的信息。项目编号本身存储在C#集合中 - 顺序不重要。在查询项目编号:1,5,7和1,7,5时,我们应该从数据库中检索相同的值。

我正在考虑将值存储在字符串字段中,但当项目的顺序不相同时会产生问题。我也想过XML - 但是如何查询DB让它知道子笔记的顺序并不重要。

需要帮助!

谢谢!

+0

是数字1属于两个集合吗? 10 $和20 $? – emaillenin

+0

是的,每个号码可以出现在不同的集合中。而且,每一组的大小都不一样。 –

回答

0

创建一个新的表名为Item_Groups并分配一个组ID为一组项目的

Item_Groups

Group_ID | Item_ID 
1 | 1 
1 | 5 
1 | 7 
2 | 1 
2 | 2 
2 | 10 

Item_Group_Price将单独的表到指定的价格向一组

Group_ID | Price 
1 | 10$ 
1 | 20$ 

当您有物品1,5,7时,请检查第一张桌子了解组ID,然后使用此组ID并从第二个表中获取价格。

+0

它的可能性,但搜索此表将导致多个查询。我很难相信没有更好的方法来实现这一点。 –

1

也许保存它与此项目的总和和乘法定义的属性?
{1,2,7},{7,2,1} - 10 14 30 $

+0

但是1,2,7和3,7具有相同的值。 –

+0

也许如果我们在其中包含乘法和和? –

+0

是的,它似乎必须工作,如果你包含乘法,但乘法可以给大的价值。 – designerrr