标准化数据库的成分

我会爱上任何人的帮助,在工作中我已经被安排在这个项目上,而且我有点失落,我的经理也不知道如何去做。

基本上我们有所有的成分3000+头发产品清单。 我需要做的是创build一个包含所有这些成分的数据库,并标准化名称。

这是我面临的问题:

  1. 根据生产国的不同,成分略有拼写
  2. 许多成分都是不同的格式,例如:

    Product A: ingredient A,Ingredient B,Ingredient C
    Product B: ingredient A, Ingredient B, Ingredient C
    Product C: ingredient A ,Ingredient B ,Ingredient C
    Product D: ingredient A.IngredientB.Ingredient C

我将如何能够:

1)标准化所有我现有的数据2)分离每个成分,所以我有一个列表3)创build一个Excel模型,当我想添加一个成分,它会validation它与我现有的列表? (这一个我知道该怎么做)

谢谢大家! 会喜欢一些build议!

从数据build模的angular度来看,有两个实体:产品和配料,它们是N对M的关系。 这可以放在树形关系表中,您可以在Excel *中存储三张表格:产品列表,成分列表以及产品和成分之间的关​​系列表。 但这当然是最后的图景。

现在,填充这些表单(ETL)需要一些工作,因为数据质量低(名称上的差异)。 其中的一部分可能是sed脚本直接作为文本(标准化分隔符)或BruceWayne指出,在CSV导入中使用所有可能的分隔符。 但其中的一部分可能需要人为干预(修复不同的名称)。

使用CSV导入,select分隔符和固定空格应该可以让你在那里:

 |---------|-------------|------------|-------------| |Product A| ingredient A|Ingredient B|Ingredient C | |Product B| ingredient A|Ingredient B| Ingredient C| |Product C| ingredient A|Ingredient B| Ingredient C| |Product D| ingredient A|IngredientB |Ingredient C | |---------|-------------|------------|-------------| 

然后我会build议的是build立一个标准名称与input中可能发生的所有其他等效名称的单独映射。 这种映射可能会部分自动build立(根据您的观察等情况而变化的明显情况),但可能需要手动工作和反复试验。

映射可能看起来像

 |-------------|-------------| | From | To | |-------------|-------------| |ingredient a |Ingredient A | | ingredientA |Ingredient A | | ingredient b|Ingredient B | | IngredientB |Ingredient B | |-------------|-------------| 

然后,您应该能够将原始表映射到具有查找function的标准化表格:

 |---------|------------|------------|------------| |Product A|Ingredient A|Ingredient B|Ingredient C| |Product B|Ingredient A|Ingredient B|Ingredient C| |Product C|Ingredient A|Ingredient B|Ingredient C| |Product D|Ingredient A|Ingredient B|Ingredient C| |---------|------------|------------|------------| 

并将其映射到成分列表(在映射表的第二列使用重复消除):

 |------------| |Ingredient A| |Ingredient B| |Ingredient C| |------------| 

(和产品相同)。

你也应该能够填充规范化的关系:

 |---------|------------| |Product A|Ingredient A| |Product A|Ingredient B| |Product A|Ingredient C| |Product B|Ingredient A| |Product B|Ingredient B| |Product B|Ingredient C| |Product C|Ingredient A| |Product C|Ingredient B| |Product C|Ingredient C| |Product D|Ingredient A| |Product D|Ingredient B| |Product D|Ingredient C| |---------|------------| 
  • 免责声明:从数据库的angular度来看,如果可以使用关系数据库(可能使用Access),比Excel更可取,尽pipe许多人使用Excel来存储数据。 Excel中错误的操作(如删除单元格和移动行和列)可能会导致严重的数据错误,如果在生产中使用,可能会造成灾难性的后果。 即使没有数据库背景,Excel也非常好用,使用起来也很简单!