2015-09-05 122 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'};)。
現在,您可以在產品表格中添加任意數量的行,以表示產品,其價格以及它屬於哪個商店的兩個行。