2015-09-05 119 views
1

我的应用程序有一个简单的界面,当点击一个按钮时,它会显示带有5个标记的Google Map屏幕。当这些标记被点击,会出现一个弹出窗口,商店的显示器的价格,例如:设计每个商店多个价格的数据库结构

Food: £1 
Water: £2 

我试图实现数据库与我的应用程序,所以我只能储存食物和水多的价格,没有其他的。例如 -

商店A有食物和水,价格从1英镑到10英镑不等,而商店B也有食物和水,价格可以从1英镑到10英镑不等,比如商店A。

我该如何设计一个商店A作为一排,有10个不同的价格作为列,另一行称为商店B,也包含10个不同的价格? 会是有意义的像做以下 -

 
Shop A | FoodPrice_1 | WaterPrice_1 | FoodPrice_2 | WaterPrice_2 | FoodPrice_3 
Tesco | 1.99  | 2.05   | 1.04  | 2.31   | 1.93 

Shop B | FoodPrice_1 | WaterPrice_1 | FoodPrice_2 | WaterPrice_2 | FoodPrice_3 
Sainsburys| 1.99  | 2.05   | 1.04  | 2.31   | 1.93 

是否可以通过每列迭代,并显示在一定标志的价格?

这不一定是一个完美的设计,应用程序将不会被发布。我想要做的主要事情是能够分别显示每个价格,因此不需要复杂的结构。

+0

的产品表你似乎有它向后。如果你有十个不同的价格,你应该在表中有十个不同的_rows_,而不是十个。 –

+0

@ ThomasPadron-McCarthy它是怎么回事?我正在考虑我上面的方式,所以我可以只做一个查询 - “SELECT FoodPrice_1,WaterPrice_1 FROM Shops WHERE Shop_Name ='Shop A'' – funky

回答

0

在你的例子中,我会假设列的名称将是产品的品牌?你不需要那个。它根本不是模块化的。

您可能需要一个表,看起来像这个:

一家商店表2列:

id | shop_name 

与4列的所属类别表:

id | shop_id | product_id | product_price 

的产品表与

id | product_name | other_attributes 

甚至一个店铺表2列:

id | shop_name 

的产品表

id | product_name | product_price | shop_id 

因此,一切都取决于你的需要。

在你的情况下,如果应用程序不发展,只要没有很多重复的数据,你可能想使用第二个选项,这不会是一个问题。

一般来说,我不会去第二个,因为完全相同的商店可能会出售相同的产品作为另一个产品,唯一的区别是价格,因此您可能不想重复product_name或属性(重量,大小,颜色,...),想象一下,如果5店卖(我会添加更多的信息完全一样的产品,使它看起来更明显)你的数据库会喜欢这样:

id | product_name | product_price | shop_id | product_weigth | product_flavor 

id | Coca-Cola | product_price | 1  | 2L    | Cherry 
id | Coca-Cola | product_price | 2  | 2L    | Cherry 
id | Coca-Cola | product_price | 3  | 2L    | Cherry 
id | Coca-Cola | product_price | 4  | 2L    | Cherry 

但随着解决一个你会有

3列product_list表

id | shop_id | product_id | product_price 
1 | 1  | 1   | product_price 
2 | 2  | 1   | product_price 
3 | 3  | 1   | product_price 

id | product_name | Weight | Flavor 
1 | Coca-Cola | 2l  | Cherry 
+0

感谢您的回复!不,在我的例子中,列的名称将是'商店A'的地方,而产品的价格是它说'FoodPrice_1'的地方,所以它会是'商店A |例如1.99'。如果两个商店对于相同的商品也具有完全相同的价格,那也没关系。我认为自己的方式没问题的原因是,我可以很容易地查询每个价格 – funky

+0

“商店A”,也许我表达自己很差,但我的意思是你怎么知道什么产品是waterprice_1?如果你的例子不是: '商店A | Water_type1_price | Water_type2_Price',我不明白你怎么能说出water1和water2之间的区别.column是否代表两者之间的区别? TBH我真的不知道你的问题了:) – jayD

+0

是啊抱歉回头看我的问题,现在还不太清楚我想解释什么。表格标题将是“Shop A |” WaterPrice_1 | FoodPrice_1 |'WaterPrice_1'下面是价格,我会更新我原来的问题,看看它是否更清晰。 – funky

0

我建议你创建两个表:
Shop(#shop_id, shop_name);

Product(product_id, product_name, product_price, (ref) shop_id);
不要忘记添加检查约束来PRODUCT_NAME(check product_name in {'Food', 'Water'};)。
现在,您可以在产品表格中添加任意数量的行,以表示产品,其价格以及它属于哪个商店的两个行。