有哪些方法可以映射&规范化相关数据?

时间:2009-07-10 14:18:36

标签: language-agnostic data-structures normalization data-mapping

假设您需要将提供给您的随机相关数据汇集到更简洁的类别中。

示例 - 您获得了以下数据。 注意 - 可能存在任意数量的其他相关柱状数据:

 Customer      Product                Category
==========    =========    =================================
Customer A    Product A                 Cat 1
 CustomerA    Product B               Category 1
  Cust-A      Product C    Totally Lame & Unrelated Grouping

任务 - 将上述内容整合并标准化为干净的预定义分组:

CustomerA
  Category1
    ProductA
    ProductB
    ProductC

请不要担心完成的数据将如何保留。而是关注如何坚持和管理分组规则。

只有一个假设:您无法使用数据库来保留分组规则。因此,当我们说“规范化”时,我们不是在谈论关系数据库规范化规则。但我们想要从数据输入中消除不一致性(如上所示),以使随机数据进入一致状态。

那么可用的选项有哪些?保持技术不可知:

XML?

配置文件?

设置文件(已编译与否)?

Ini文件?

码?

列出专业人士每个答案的利弊。虽然这确实是一个例外,但这是一个现实世界的问题。因此,假设您的客户/雇主已经为您负责。

3 个答案:

答案 0 :(得分:0)

这似乎是一项数据清理练习,完美是不可能的。的问题:

1)。您可以预先指定类别,还是必须从数据中推断出来?

2)。我们可以使用什么规则来接受等价?

“Cat 1”与“Category 1”相同?和“第一类”?

“猫咪1” als“Cat 1”?那么“猫1?” ?和“猫12”?

在挑战中获得一套好的规则。

2)。你会如何捕捉这些规则?代码或配置?如果配置怎么表达呢?你最后只是编写了一种新的编程语言吗?

答案 1 :(得分:0)

这似乎是一项数据清理练习,完美是不可能的。的问题:

1)。您可以预先指定类别,还是必须从数据中推断出来?

2)。我们可以使用什么规则来接受等价?

“Cat 1”与“Category 1”相同?和“第一类”?

“猫咪1” als“Cat 1”?那么“猫1?” ?和“猫12”?

在挑战中获得一套好的规则。

3)。你会如何捕捉这些规则?代码或配置?如果配置怎么表达呢?你最后只是编写了一种新的编程语言吗?

答案 2 :(得分:-1)

  1. 每个值的字典映射。 'Cat1'=> 'Category1','Category 2'=> “类别2”。这很容易存储,并且没有意外的后果。缺点是手工创建所有这些映射是实际工作。
  2. 一系列正则表达式。这样,您就可以使用相对较少的工作捕获几乎所有规则。缺点是正则表达式“失火”相对容易,评估顺序很重要(即当值与多个'规则'匹配时。
  3. 至于如何坚持下去?我想不出一个更无趣的问题。您只需使用首选编程语言中最简单的内容即可。