我正在建造一个送货系统,现在,我的设计看起来是这样的:

问题是,我经常需要一个结构(数组、json、对象.)这看起来像(非常分层的):

这样做的问题是,它会产生大量重复的StreetAddress、DeliveryPoint和Customer,因为每个行程都会创建很多这样的行程,并且行程看起来与其他的非常相似。好的是,只要加入几个环节,一切都会很美好。
对于第一个模式,创建第二个结构将是非常奇怪的,但它是可能的。
对于如何控制重复,仍然可以很容易地查询上述结构,有什么想法吗?
我在用:
如果有人想知道我是如何绘制模式的: www.gliffy.com
发布于 2013-10-28 04:38:54
重复和正常化并不总是对立的问题。
以下是基本问题:
规范化本身不关心重复,而关心函数依赖
重复是错误的问题。函数依赖是正确的问题。在某些情况下,地址很难确定函数依赖关系,因为有太多的约定,即使有,您仍然会遇到格式化问题。
了解这一点的一个简单方法是询问某一给定数据可能发生变化的原因。良好的标准化设计限制了给定数据可能需要更改的原因。现在,考虑到这一点,看起来您需要为客户存储历史位置,在我看来,您可能想做一些稍微不同的事情。
而不是:
Delivery -> customer -> street address -> itinerary在我看来,更有意义的是:
Customer -> street address和
delivery -> itinerary -> street address在这个模型中,您可能有重复的信息,您可能需要在街道地址中有日期,指示它何时有效,但我并不认为这是一个规范化问题,特别是考虑到已经存在的规范化问题。但是从那里,您可以很容易地跟踪交付给的客户,而在您的模型中,不清楚您可以跟踪给定送货的街道地址或行程。
https://stackoverflow.com/questions/19549120
复制相似问题