- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个交付系统,到目前为止,我的设计看起来像这样:
问题是,我经常需要一个看起来像这样(非常分层)的结构(数组、json、对象...):
这样做的问题是,它会产生大量重复的 StreetAddress、DeliveryPoint 和 Customer,因为每个 Itinerary 都会创建很多这样的信息,而且行程看起来与其他的非常相似。好的部分是,只需几个连接,一切都会很漂亮。
使用第一个模式,创建第二个结构会很奇怪,但它是可能的。
关于如何控制重复并仍然为上述结构获得易于查询的模式有什么想法吗?
我正在使用:
[如果有人想知道我是如何绘制模式的:www.gliffy.com]
最佳答案
重复和规范化并不总是对立的问题。
这是基本问题:
规范化本身不关心重复,而是关心函数依赖
重复是错误的问题。功能依赖是正确的问题。在您的某些情况下,地址非常难以确定函数相关性,因为那里有太多约定,即使您这样做了,您仍然会遇到格式问题。
深入了解的一个简单方法是询问给定数据可能发生变化的原因。良好的规范化设计限制了给定数据可能需要更改的原因。现在,考虑到这一点,您似乎需要为客户存储历史位置,在我看来您可能想要做一些稍微不同的事情。
代替:
Delivery -> customer -> street address -> itinerary
在我看来,这样做更有意义:
Customer -> street address
和
delivery -> itinerary -> street address
在这个模型中,你可能有重复的信息,你可能需要在街道地址中有日期来指示它何时有效,但我并不觉得这是一个规范化问题,特别是考虑到已经解决的规范化问题姿势。但是从那里您可以轻松跟踪送货的客户,而在您的模型中,您不清楚是否可以跟踪给定送货的街道地址或行程。
关于postgresql - 数据库设计决策 : normalization or repetition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549120/
在这里,我想要查找的所有字符串都是三个‘a’字符的倍数,但结果是一个‘’的列表,即。[‘’,‘’,‘’]。此语法来自Re文档。我不知道哪里不对,你能帮我吗?。我预计会是[‘AAA’],而结果显然不是。
在这里,我想要查找的所有字符串都是三个‘a’字符的倍数,但结果是一个‘’的列表,即。[‘’,‘’,‘’]。此语法来自Re文档。我不知道哪里不对,你能帮我吗?。我预计会是[‘AAA’],而结果显然不是。
如何在 Java Regex 中定义重复组? 让我们说一个 2 位数字 [0-9]{2} 多次分隔, 12,34,98,11 这是可能的还是 split 的,唯一的机会? 编辑:我喜欢验证和提取。 最
我有一个部门表和一个雇员表。 dept 表与 emp 表与 deptId 存在一对多关系。 当我尝试这段代码时: session.createCriteria(Dept.class).setFetch
我有一个文本文件,其中包含以下形式的信息: A 0 B 1 C 4 D 0 E 1 A 0 B 0 C 2 D 1 E 1 A 1 B 0 C 2 D 0 E 0 ...
这个问题在这里已经有了答案: Replace "\\" with "\" in a string in C# (9 个回答) 关闭 6 年前。 在 C# 应用程序中,我得到桌面文件夹执行此操作: s
我想多次使用 getElemendbyId 函数,只需将 ID 的名称作为变量传递即可。 我想有比以下更优雅的方法: function myFunction2() { document.ge
我正在构建一个交付系统,到目前为止,我的设计看起来像这样: 问题是,我经常需要一个看起来像这样(非常分层)的结构(数组、json、对象...): 这样做的问题是,它会产生大量重复的 StreetAdd
我正在用 java 练习正则表达式,但我遇到了以下行的问题: Pattern pattern = Pattern.compile("\"(.*?)\": {\"detected\": (.*?), \
我正在尝试找出如何使用关键字终止单词的重复。一个例子: class CAQueryLanguage extends JavaTokenParsers { def expression = ("
这两个函数给出了相同的结果,但为什么循环中有“i > 4”而递归中有“size > 5”?为什么数字不同? function branchBoxForLoop(size) { c.strokeSt
我有一段代码,它将接受一个字符串并重复它,使得字符串的长度为x。 >>> import math >>> def repeat(data, length): return (data
我正在尝试使用正则表达式解决问题。我正在使用 Java 正则表达式,它显然类似于 Perl 中的正则表达式。 我想搜索一个字符串,该字符串包含 1-9 中的单个数字,连续重复 3 次或更多次,或者在重
我收到一个我以前从未真正见过的奇怪的 mysql 错误。它是由类似于下面的查询引起的。有什么建议吗? SELECT * FROM table WHERE col REGEXP '^* MAN *
我有以下表格结构。这两个表有很多共同的属性超过 20 我只是列出两个。我也有 10 个与此类似的表。这就是表在数据库中的方式。有超过 10 个具有相似属性的具体表,并且没有以任何方式相互连接。我正在使
当我在做我的一个项目并且不得不使用很多嵌套对象时,当我想从上层对象设置一个深度嵌套对象的实例变量时,我对我在 Java 中的结构设计变得非常不确定.感觉好像我错过了对 Java 结构化设计的基本理解。
我在一个包含字符串的文件中,例如 {?ENV1} {?ENV2} 我想使用 grep 来查找这些使用 grep -o '\{\?\S+?\}' 我的文件 但是我明白了grep: 错误的正则表达式 '\
为什么正则表达式模式/y+?z/匹配整个字符串yyyz? 我的理解是模式 /y+z/ 是贪婪 所以会匹配一个或多个 y 字符后跟一个 z 字符。为了使该表达式不贪婪(仅匹配 y 的第一个实例),我可以
我有一个 PHP/mySQL 搜索脚本,由于某种原因,在开发人员最新更新后,在使用通配符 (*) 搜索时已停止工作。更糟糕的是,它不仅停止工作,而且还返回以下令人讨厌的(对于访问者)mySQL 错误,
我有这个 Regex,但是当尝试在 mysql 查询语句中使用它时,我得到了 SQL Error [1139] [42000]: Got error 'repetition-operator oper
我是一名优秀的程序员,十分优秀!