2014-01-23 46 views
0

我需要能夠標準化產品的大小和顏色信息。這是因爲我們的一些產品可能來自兩個或更多供應商(但其產品完全相同),但他們對尺寸和顏色名稱都有自己的想法!在保存原始數據的同時保存數據在php/MySQL中

在我的第一次嘗試中,我允許網站管理員簡單地覆蓋原始數據,以跨供應商對其進行標準化。儘管如此,這導致我在目錄更新時出現了問題,因爲我已經丟失了來自每個供應商的尺寸和顏色名稱。

我正在考慮使用另一組表來存儲標準化數據 - 例如,使用一組標準的大小如S,M,L,XL,使用另一個表來映射大小標識(行號)回到供應商數據的多種尺寸變化。這將保留原始數據,以便我可以自動更新它。但這意味着映射表變得非常大,速度非常快,而且我擔心必須查詢此外部大小表並有效「重寫」大小的性能。

目前我不能想到另一種方式來做到這一點,同時仍然保持原始數據完好 - 我錯過了一個把戲或這是唯一的方法?

這裏是我是如何看到過負荷工作

product_table的一個基本思想: ID PRODUCT_ID 顏色 大小 供應商 價格

size_table: ID 大小

size_map: ID size_id map_to_size(數據從product_table超載)

如前所述 - 有一個一到size_table行,這樣大小之間一對多的關係,是指以取代作爲佈置在size_map中。的數據(基本)的示例

產品:T恤

供應商甲尺寸:8-10,11-12,13-14,15-16 供應商B尺寸:S,M,L ,XL 供應商C尺寸:Y/S,Y/M,Y/L,Y/XL

我們只是希望能夠看到S,M,L,XL但有數據恢復到供應商原獲取更新和採購訂單。

回答

1

product_table:ID PRODUCT_ID顏色standard_size供貨價格

size_map:ID供應商standard_size supplier_size

+0

這將工作 - 而是一個同事建議簡單地將數據作爲兩個附加列於product_table - 它聽起來像是最快的選擇!我將給你的方法和額外的列方法,看看哪一個更容易處理/更快! 一旦我有了結果,我會接受你的答案或在下面發佈一個新的答案。 對於它的價值:我的第一個想法會工作,但會很大,你的工作會更小,但最後似乎是迄今爲止最小的! –

+0

好的 - 我是對的,列的添加是最快的,佔地面積最小......但不一定是正確的答案! 我打算將您的答案標記爲正確,因爲它是正確的做事方式(即:規範化表格) - 我會推薦其他人使用上述方法!但爲了速度和易於實現,我只是想擴展一個額外的列表! –