问题标签 [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.
php - 我应该制作另一张桌子还是只使用数组?(规范化或不规范化)
目前的情况是主题按3个主要类别排序。有可能添加不止 3 个类别,但上级希望实现在主题中添加不止 1 个类别的功能。
我的原始数据库设计将 categoryID 作为主题信息表中的外键。从一开始这可能是一个坏主意,但我认为他们只设置了 3 个类别,并且这样做可以减少查询。
所以从我所看到的我现在有两个选择:1)输入categoryID作为我在php端解析的逗号分隔字符串。2)重构DB,将categoryID拉出到自己的categoryID和topicID表中。
我想知道每个人对此有何看法。我的第一反应是重组数据库。但是当我想到它时,第一个选项是最容易实现的,并且最不可能通过更改数据库来破坏现有的东西。然而,这也可能导致反规范化并打开数据不一致的可能性。
我已经阅读过,只要您接受数据不一致以换取性能的风险,反规范化就可以了。在您看来,我是否会因为这种风险而获得很大的绩效?任何关于我在这种情况下应该做什么的意见将不胜感激。
谢谢你的帮助,
列维
sql - 我应该把这张桌子一分为二吗?
我正试图围绕数据库规范化。这是我第一次尝试创建一个工作数据库,所以请原谅我的无知。我正在尝试为班级项目创建一个自动毕业检查系统。下表记录了指定目录年份的专业的所有选项。表格如下
一些选项让用户从列出的总数中选择一组数量的类(因此Must_have
属性)。一个完整的行看起来像这样:
Title
是主要可以附带的选项的名称。如果bis
(业务信息系统)可以选择类,则一行中的数字Must_have
仅代表一行。
我的问题是我应该把这张桌子分成两个不同的桌子吗?我知道我目前的方式似乎有点……错了。任何帮助将不胜感激。
sql - 您如何知道 SQL 数据库何时需要更多规范化?
是在您尝试获取数据并且没有明显的简单方法时吗?
当你发现某个东西应该是一张自己的桌子?
有哪些法律规定?
sql - ER图(绘图)
对于代表大型大学当前学期注册的关系数据库,考虑到所有给定断言的模式的 ER 图是什么:
• 100 名教师、200 门课程和 800 名学生。
• 教师可以在给定学期教授一门或多门课程(平均为 2.0 门课程)。
• 教师必须指导至少一名学生(平均 = 2.5 名学生)的研究。
• 一门课程可能没有、一个或两个先决条件(平均 = 1.5 个先决条件)。
• 即使当前没有学生注册,也可能存在课程。
• 每门课程都由一位讲师授课。
• 一门课程的平均注册人数为 30 名学生。
• 学生每学期必须至少选择一门课程(平均 = 4.0 门课程选择)。
我曾多次尝试得出答案,但我做不到。所有的帮助对我来说都是有价值的。我将非常感谢 MS Visio 图表(如果可以在这个问题上节省时间)来帮助我可视化解决方案。
注意:我不是在寻找 RTFM 响应。
sql-server - 我应该使用内联 varchar(max) 列还是将其存储在单独的表中?
我想在 MS SQL Server 2005 中创建一个表来记录某些系统操作的详细信息。从下面的表格设计中可以看出,除了Details
is 之外的每一列都是不可为空的。
因为该Details
列中并不总是有数据。将此列存储在单独的表中并提供指向它的链接是否更有效?
对于较小的数据类型,我不会真正考虑它,但是对于varchar(max)
这样做是否有助于保持表大小更小?或者我只是想使数据库变得聪明而一无所获?
sql - 通用数据库日志系统:存储对另一个 database.table.column 的引用
我的问题是,如何将存储在Log
表中的引用链接到另一个数据库中的一条数据?
我们正在构建一个系统(称为 Fusion),它将为我们所有其他系统执行某些关键任务,其中之一是日志记录。
这个想法是任何其他系统都将能够使用 Fusion 来记录特定操作。
因此,在上述列的简化表设计中,该ReferenceID
列将存储来自另一个数据库列的外键。所以来自新闻数据库的 StoryID 或来自个人数据库的PersonID 。
然后ReferenceLocation
将存储该列的database.table.column位置ReferenceID
。
想法是可以编写 SQL 查询(使用动态 SQL 或其他方法),以便在Log
查询表时返回每一行的引用数据。
这是这样做的方法吗?有没有更好的办法?我们是否应该重新思考这一努力背后的原因?
sql - 3NF 数据库规范化
有一个过期 DVD 租借的报告表。该商店有同一张 DVD 的多个副本(它们都被编号以便识别)。如何规范化这些数据以满足 3NF 要求?
标准化 http://img193.imageshack.us/img193/7804/normalization.jpg
sql - 向非程序员解释为什么“向数据库中添加另一列”是个坏主意
我有销售人员和 bean 柜台,他们试图向客户销售定制产品,这很好。但是当一个复杂的变更请求出现时,我发回了一个很大的估计,他们会感到困惑。他们经常对我说“你为什么不能再添加一列?” 换句话说,它们意味着每个客户都有十几个自定义列。
到目前为止,我所能回答的只是“我们正在努力保持数据库正常化”,这对他们来说毫无意义。我告诉他们我可以创建一个表格系统,允许每个客户定义他们自己的自定义字段集,但当然这比“仅仅添加几列”需要更多的时间和金钱。当然,他们也想吃蛋糕。
那我怎样才能让他们明白呢?
xml - 这是好的 XML 吗?
我正在为一个一直使用这种 XML 结构来处理他的网站内容的客户工作:
我对 XML 很陌生,但这对我来说并不好。除了关闭标签的不同方式(自动关闭/>
或显式关闭</section>
)之外,我认为 XML 应该更像
你怎么看?
如果它们都可以,是否有“最佳实践”?
sql - 当我不需要主键时不使用主键可以吗
如果我不需要主键,我不应该在数据库中添加一个吗?