Language agnostic 有哪些方法可以映射&;规范化相关数据?
假设您需要将随机的、相关的数据导入到更简洁的类别中 示例-您将获得以下数据注意-可能有任何数量的其他相关列数据:Language agnostic 有哪些方法可以映射&;规范化相关数据?,language-agnostic,data-structures,normalization,data-mapping,Language Agnostic,Data Structures,Normalization,Data Mapping,假设您需要将随机的、相关的数据导入到更简洁的类别中 示例-您将获得以下数据注意-可能有任何数量的其他相关列数据: Customer Product Category ========== ========= ================================= Customer A Product A Cat 1 CustomerA Product B C
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
请不要担心完成的数据将如何持久化。而是关注如何坚持和管理分组规则
只有一个假设:您不能使用数据库来持久化分组规则。所以当我们说“normalize”时,我们不是在说关系数据库规范化规则。但我们希望消除数据输入中的不一致性(如上所示),以使随机数据进入一致状态
那么,可用的选项是什么?保持技术不可知性:
XML
配置文件
设置文件(是否已编译)
Ini文件
密码
等等
列出每个答案的优点和缺点。虽然这确实是一个练习,但却是一个现实世界的问题。因此,假设你的客户/雇主已经委托你完成这项工作。这似乎是一项数据清理工作,完美是不可能的。问题: 1) 。您可以预先指定类别,还是必须根据数据进行推断 2) 。我们可以使用什么规则来接受等价性 “1类”与“1类”相同吗?和“第一类” 是 “第一类”als“第一类”?“第一类”怎么样?还有“猫12” 只是在挑战中获得一套好的规则
2) 。你将如何抓住这些规则?代码还是配置?如果是,你会如何表达?你最终会编写一种新的专用编程语言吗?这似乎是一种数据清理练习,完美是不可能的。问题: 1) 。您可以预先指定类别,还是必须根据数据进行推断 2) 。我们可以使用什么规则来接受等价性 “1类”与“1类”相同吗?和“第一类” 是 “第一类”als“第一类”?“第一类”怎么样?还有“猫12” 只是在挑战中获得一套好的规则 3) 。你将如何抓住这些规则?代码还是配置?如果是,你会如何表达?你最终只是写了一种新的专用编程语言吗
至于如何保存它们?我想不出比这更无趣的问题了。你只需使用你喜欢的编程语言中最简单的语言即可。1)&2)请参阅我关于“预定义”分组的文字。您将知道提前将数据规范化为什么,也将知道哪些数据需要提前规范化。3) 实际上是原始问题的一部分。是否应该使用配置?利与弊?你应该说得更清楚。。。从djna的评论中可以看出:“您将知道提前将数据标准化到什么,并且您还将知道哪些数据需要提前标准化”。。。这是什么意思?我们知道什么?格式?或者我们已经知道所有的值,只需要将输入与正确的值进行匹配?第二个代码块是什么?这是否意味着我们对客户和类别以及类别和产品有1-n关系?我们需要检测这些吗?XML&c。可以看作是简单的数据存储。鉴于许多平台都有处理XML的库,这些库(和存储一起)构成了一个数据库。分组规则不存储在数据库中的要求背后的目的是什么?它仅仅是为了排除RDBMS吗?您是否希望规则存储仅为写?还有别的吗?