【发布时间】:2010-11-09 17:40:39
【问题描述】:
假设您需要将提供给您的随机相关数据集中到更简洁的类别中。
示例 - 为您提供以下数据。 注意 - 可能有任意数量的其他相关的柱状数据:
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 文件?
代码?
等等
列出每个答案的优缺点。虽然这确实是一个 excersize,但这是一个现实世界的问题。因此,假设您的客户/雇主已委托您完成此任务。
【问题讨论】:
-
你应该更清楚地说明这一点......从 djna 的评论中:“你会提前知道要将数据规范化到什么,你也会知道哪些数据需要提前规范化时间”……这是什么意思?我们知道什么?一种格式?还是我们已经知道所有值并且只需要将输入与正确的值进行匹配?第二个代码块是什么?这是否意味着我们对客户和类别以及类别和产品有 1-n 关系?我们需要检测这些吗?
-
XML &c。可以被视为简单的数据存储。鉴于许多平台都有处理 XML 的库,这些(连同存储一起)构成了一个数据库。分组规则不存储在数据库中的要求背后的目的是什么?它只是为了排除 RDBMS 吗?您是否打算将规则存储设为只写?还有什么?
标签: language-agnostic data-structures normalization data-mapping