问题标签 [normalization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
162 浏览

php - 我应该制作另一张桌子还是只使用数组?(规范化或不规范化)

目前的情况是主题按3个主要类别排序。有可能添加不止 3 个类别,但上级希望实现在主题中添加不止 1 个类别的功能。

我的原始数据库设计将 categoryID 作为主题信息表中的外键。从一开始这可能是一个坏主意,但我认为他们只设置了 3 个类别,并且这样做可以减少查询。

所以从我所看到的我现在有两个选择:1)输入categoryID作为我在php端解析的逗号分隔字符串。2)重构DB,将categoryID拉出到自己的categoryID和topicID表中。

我想知道每个人对此有何看法。我的第一反应是重组数据库。但是当我想到它时,第一个选项是最容易实现的,并且最不可能通过更改数据库来破坏现有的东西。然而,这也可能导致反规范化并打开数据不一致的可能性。

我已经阅读过,只要您接受数据不一致以换取性能的风险,反规范化就可以了。在您看来,我是否会因为这种风险而获得很大的绩效?任何关于我在这种情况下应该做什么的意见将不胜感激。

谢谢你的帮助,
列维

0 投票
2 回答
383 浏览

sql - 我应该把这张桌子一分为二吗?

我正试图围绕数据库规范化。这是我第一次尝试创建一个工作数据库,所以请原谅我的无知。我正在尝试为班级项目创建一个自动毕业检查系统。下表记录了指定目录年份的专业的所有选项。表格如下

一些选项让用户从列出的总数中选择一组数量的类(因此Must_have属性)。一个完整的行看起来像这样:

Title是主要可以附带的选项的名称。如果bis(业务信息系统)可以选择类,则一行中的数字Must_have仅代表一行。

我的问题是我应该把这张桌子分成两个不同的桌子吗?我知道我目前的方式似乎有点……错了。任何帮助将不胜感激。

0 投票
13 回答
668 浏览

sql - 您如何知道 SQL 数据库何时需要更多规范化?

是在您尝试获取数据并且没有明显的简单方法时吗?

当你发现某个东西应该是一张自己的桌子?

有哪些法律规定?

0 投票
3 回答
5099 浏览

sql - ER图(绘图)


对于代表大型大学当前学期注册的关系数据库,考虑到所有给定断言的模式的 ER 图是什么:

• 100 名教师、200 门课程和 800 名学生。
• 教师可以在给定学期教授一门或多门课程(平均为 2.0 门课程)。
• 教师必须指导至少一名学生(平均 = 2.5 名学生)的研究。
• 一门课程可能没有、一个或两个先决条件(平均 = 1.5 个先决条件)。
• 即使当前没有学生注册,也可能存在课程。
• 每门课程都由一位讲师授课。
• 一门课程的平均注册人数为 30 名学生。
• 学生每学期必须至少选择一门课程(平均 = 4.0 门课程选择)。

我曾多次尝试得出答案,但我做不到。所有的帮助对我来说都是有价值的。我将非常感谢 MS Visio 图表(如果可以在这个问题上节省时间)来帮助我可视化解决方案。

注意:我不是在寻找 RTFM 响应。

0 投票
6 回答
7989 浏览

sql-server - 我应该使用内联 varchar(max) 列还是将其存储在单独的表中?

我想在 MS SQL Server 2005 中创建一个表来记录某些系统操作的详细信息。从下面的表格设计中可以看出,除了Detailsis 之外的每一列都是不可为空的。

因为该Details列中并不总是有数据。将此列存储在单独的表中并提供指向它的链接是否更有效?

对于较小的数据类型,我不会真正考虑它,但是对于varchar(max)这样做是否有助于保持表大小更小?或者我只是想使数据库变得聪明而一无所获?

0 投票
3 回答
895 浏览

sql - 通用数据库日志系统:存储对另一个 database.table.column 的引用

我的问题是,如何将存储在Log表中的引用链接到另一个数据库中的一条数据?

我们正在构建一个系统(称为 Fusion),它将为我们所有其他系统执行某些关键任务,其中之一是日志记录。

这个想法是任何其他系统都将能够使用 Fusion 来记录特定操作。

因此,在上述列的简化表设计中,该ReferenceID列将存储来自另一个数据库列的外键。所以来自新闻数据库的 StoryID 或来自个人数据库的PersonID 。

然后ReferenceLocation将存储该列的database.table.column位置ReferenceID

想法是可以编写 SQL 查询(使用动态 SQL 或其他方法),以便在Log查询表时返回每一行的引用数据。

这是这样做的方法吗?有没有更好的办法?我们是否应该重新思考这一努力背后的原因?

0 投票
2 回答
5130 浏览

sql - 3NF 数据库规范化

有一个过期 DVD 租借的报告表。该商店有同一张 DVD 的多个副本(它们都被编号以便识别)。如何规范化这些数据以满足 3NF 要求?

标准化 http://img193.imageshack.us/img193/7804/normalization.jpg

0 投票
15 回答
2718 浏览

sql - 向非程序员解释为什么“向数据库中添加另一列”是个坏主意

我有销售人员和 bean 柜台,他们试图向客户销售定制产品,这很好。但是当一个复杂的变更请求出现时,我发回了一个很大的估计,他们会感到困惑。他们经常对我说“你为什么不能再添加一列?” 换句话说,它们意味着每个客户都有十几个自定义列。

到目前为止,我所能回答的只是“我们正在努力保持数据库正常化”,这对他们来说毫无意义。我告诉他们我可以创建一个表格系统,允许每个客户定义他们自己的自定义字段集,但当然这比“仅仅添加几列”需要更多的时间和金钱。当然,他们也想吃蛋糕。

那我怎样才能让他们明白呢?

0 投票
8 回答
302 浏览

xml - 这是好的 XML 吗?

我正在为一个一直使用这种 XML 结构来处理他的网站内容的客户工作:

我对 XML 很陌生,但这对我来说并不好。除了关闭标签的不同方式(自动关闭/>或显式关闭</section>)之外,我认为 XML 应该更像

你怎么看?

如果它们都可以,是否有“最佳实践”?

0 投票
12 回答
4866 浏览

sql - 当我不需要主键时不使用主键可以吗

如果我不需要主键,我不应该在数据库中添加一个吗?