过载数据同时保留php / MySQL中的原始数据

时间:2014-01-23 17:03:56

标签: php mysql sql

我需要能够标准化产品的尺寸和颜色信息。这是因为我们的一些产品可能来自两个或更多供应商(但产品完全相同),但他们对尺寸和颜色名称都有自己的想法!

在我的第一次尝试中,我允许网站管理员简单地覆盖原始数据,以便跨供应商对其进行标准化。这在目录更新时引起了我的问题,因为我丢失了来自每个供应商的尺寸和颜色名称。

我正在考虑使用另一组表来存储标准化数据 - 例如,使用一组标准的大小,如S,M,L,XL,使用另一个表来映射大小id(行号)来自供应商数据的多种尺寸变化。这将保留原始数据,以便我可以自动更新它。但这意味着映射表变得非常大,非常快,我担心必须查询这个外部大小表并有效地“重写”大小的性能。

目前我无法想到另一种做法,同时仍然保持原始数据的完好 - 我错过了一个技巧还是这是唯一的方法?

以下是我看到过载工作的基本概念

product_table : ID PRODUCT_ID 颜色 尺寸 供应商 价

size_table : ID 大小

size_map : ID size_id map_to_size(要从product_table重载的数据)

如前所述 - size_table行与size_map中列出的要替换的大小之间存在一对多的关系。数据的一个例子(基本)

产品:T恤

供应商A大小: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 个答案:

答案 0 :(得分:1)

product_table :id product_id color standard_size供应商价格

size_map :ID供应商standard_size supplier_size