我有一個數據庫存儲組件表中的組件。 還有第二個組件價格表。該表有一個映射到組件ID的字段。我的價格表需要存儲一堆不同價格的信息(10,100,1000,10K,100K,1M)。事情是,未來有可能存儲其他價格類型,如25K或50K。價格數據的數據庫設計
至於現在,我的價格表如下:
id component_id type price
其中類型可以從1-6目前採取的值。這很好,因爲它可以讓我在未來非常輕鬆地添加新的價格類型。
另一種選擇是價格表如下:
id component_id price_10 price_100 price_1000 price_10K price_100K price_1M
但在這種情況下,我需要在每次添加新的價格類型時添加一個新的領域。
我希望這裏的人會同意第一種方法。
但是使用第一種方法時,我無法顯示一個頁面,該頁面可能會顯示我的數據庫中的所有組件,可能有或沒有6的價格(在這種情況下應顯示0)。顯然,使用第二種方法很簡單。
這是查詢我到目前爲止:
SELECT * FROM `component` LEFT JOIN `component_cost` ON `cmpcst_component` = `cmp_id`
編輯: 我想我會表現出從組件價格表中的一些樣本數據: 價格是單價,金額X,X範圍從10到100萬。所以我可能有這樣的事情在我的組件價格表:
id component_id type price
1 1 1 0.50
2 1 2 0.45
3 1 3 0.40
4 1 4 0.35
5 1 5 0.32
6 1 6 0.30
類型和價格之間的關係是什麼?一種類型可以有兩種不同的價格嗎?換句話說,這些數字是什麼:10,100,1000,10K,100K,1M,25K,50K。他們是美元還是別的東西? – Kash
我剛剛添加了示例數據到我的文章底部。 價格是一個單價。因此,一個組件在訂購10個單位時可能花費0.50美元,或者訂購1000個單位時花費0.40美元。 – Justin
如果你給我們每個表的結構和樣本數據,以及預期的輸出,它會有所幫助。根據您提供的內容,我們可能會提供一個更好的解決方案,而不僅僅是回答您的sql問題,就像您最好還是利用查找表一樣,後者會證明給您更輕鬆的維護,或者如果你將需要一張已經非規範化的表格:) – Nonym