标签: database-normalization

MySQL数据库规范化

我应该实现读取数据库规范化(使用连接表)还是应该将ENUM类型用于静态或动态数据?

例如:

我有一个表USERuser_status.我应该创建一个表格status表,还是创建一个包含状态的ENUM列表?

谢谢G

mysql enums database-normalization

20
推荐指数
1
解决办法
772
查看次数

功能依赖和规范化

我正在努力寻找一个很好的资源来研究功能依赖和规范化.

任何人都知道我应该在哪里看?我难以区分FD是1NF,2NF还是3NF?

我一直在阅读维基百科,并使用谷歌搜索找到了很好的研究,但找不到任何简单的解释.

也许你们都可以分享你在生活中学习FD和正常化的方式.

database database-normalization functional-dependencies

17
推荐指数
3
解决办法
5万
查看次数

用户要求非规范化数据库

我处于开发数据库驱动系统的早期阶段,系统的最大部分围绕着继承类型的关系.有一个包含大约10列的父实体,并且将有大约10个从父级继承的子实体.每个子实体将有大约10列.我认为为父实体提供自己的表并为每个子项提供自己的表 - 每个子类的表结构是有意义的.

今天,我的用户要求查看我创建的系统的结构.他们对每子类表结构的想法犹豫不决.他们更喜欢一个大~100列表,因为它们更容易执行自己的自定义查询.

为了用户的缘故,我应该考虑对数据库进行非规范化吗?

database database-design denormalization database-normalization

15
推荐指数
4
解决办法
992
查看次数

学校管理系统的数据库规范化

我正在为学校管理系统创建系统,并提出附加的数据库模式.

数据库图http://oi40.tinypic.com/15x21ig.jpg

以下是系统的工作原理:

  1. 一所学校有很多学生和老师.它还教授了许多课程(科目).年级可以分配许多课程.这些课程将分配给该特定年级的学生.
  2. 学生的水平分为等级和部分.学生可以达到五年级,但如果五年级学生数量巨大,他们会分成几个部分.例如:5年级A部分,5年级B部分.
  3. 学生被安置在独特的教室里.整个教室将是独一无二的.2010年的5年级A级课堂将与2011年5年级A级的课堂不同.
  4. 学生被分配到父母.家长可以在学校拥有一名以上的学生.
  5. 可以将一个或多个教室分配给教师.
  6. 学生每天都会参加学生的考试
  7. 会有很多类型的考试.为每个科目(课程)存储考试结果.

我是数据库规范化的初学者,如果有人能给我一些提示,如果数据库看起来不错,我会很高兴.

编辑:

此外,只有一个登录点.在上述情况下,在登录期间,用户必须从下拉列表中选择用户类型.该下拉选择将用于查询相应的表以登录系统.另一种方法是使用一个公用user表,它将存储user_id, email, password, last_login_date, last_login_ip但会将其他细节存储在各自的表中,例如student, parent, teacher.那么,实现它的首选/正确方法是什么?

mysql database-design relational-database database-schema database-normalization

15
推荐指数
1
解决办法
5万
查看次数

Anchor Modeling的优点和缺点是什么?

我目前正在尝试创建一个数据库,其中很大一部分数据是暂时的.在阅读了许多这样做的技术(大多数涉及6nf标准化)后,我遇到了锚点建模.

我正在开发的模式非常类似于Anchor Modeling模型,特别是因为用例(Temporal Data + Known Unknowns)是如此相似,我很想完全接受它.

我遇到的两个最大的问题是,我找不到任何详细说明这种方法的负面影响的内容,而且我找不到任何对生产中用于战争故事和陷阱的组织的引用,这些都是我需要注意的.

我想知道这里是否有人熟悉,可以简要地阐述一些否定因素(因为积极因素在研究论文及其网站上得到了很好的宣传),以及在生产环境中使用它的任何经验.

sql database-design temporal-database database-normalization anchor-modeling

15
推荐指数
3
解决办法
5613
查看次数

存储查找表id或纯数据之间的决定

我发现这很多,我不确定接近它的最佳方法.

我的问题是如何在使用外键查找表或直接在请求它的表中使用查找表值之间做出决定,完全避免查找表关系.

要记住的要点:

  • 使用第二种方法,如果在查找表中更改了数据,则需要对引用数据的所有记录进行批量更新.

  • 这更侧重于有很多列引用许多查找表的表.因此,每次查询表时,许多外键意味着很多连接.

  • 此数据将来自下拉列表,这些列表将从查找表中提取.为了在重新加载时匹配数据,值必须在现有列表中(与第一个点相关).

这里有最佳实践,还是需要考虑的关键点?

sql database lookup database-normalization

14
推荐指数
2
解决办法
6999
查看次数

数据库规范化究竟做了什么?

数据库的新手,所以不要对简单的问题感到不满.就我的谷歌和聚集的知识规范化而言,减少了数据的冗余并提高了性能.但实际上,我不明白将主表划分为其他小表,应用它们之间的关系,使用所有可能的联合,子查询,联接等检索数据的确切原因.为什么我们不能拥有所有数据单个表并根据需要检索它们.我有点困惑.

database database-normalization

14
推荐指数
3
解决办法
9404
查看次数

数据库规范化仍然是必要的吗?

数据库规范化仍然是"那件事吗?"

当我在数据库课程中学习时,我们被教导了所有级别的规范化,并且我们必须始终这样做.

现在,随着所有的NoSQL运动,似乎规范化不再是要做的事情了?

database database-normalization

14
推荐指数
2
解决办法
4122
查看次数

有损分解

为什么有损分解称为有损?我们究竟在有损分解中损失了什么?

存在关系R.它被分解为两个关系R1和R2.

如果R =(R1 JOIN R2)那么它就是无法连接分解.没关系.

如果R是(R1 JOIN R2)的子集,那么有损连接分解.

这是有损连接分解,在连接R1和R2后,我们实际上得到的记录与R相比更多.那么我们失去了什么.?

database database-normalization

14
推荐指数
1
解决办法
2万
查看次数

如何理解第5范式?

我正在使用两个在线资源来获得对5NF的理解,而没有任何严格的数学和证明.

  1. 关系数据库理论中的五种常规形式的简单指南(作者:肯特.这个似乎已经在他的一篇着作中被CJ Date自己评论和认可)
  2. 第五范式(维基百科文章)

但是,我无法理解这些参考文献中的任何一个!

我们先来看一下Reference#1(Kent's).

它说:"但假设某条规则有效:如果代理商销售某种产品​​,而他代表一家制造该产品的公司,那么他就会为该公司销售该产品."

然后,继续分解原始表(所有表名都由我给出)......

acp(agent, company, product)

-----------------------------
| AGENT | COMPANY | PRODUCT |
|-------+---------+---------|
| Smith | Ford    | car     | 
| Smith | Ford    | truck   | 
| Smith | GM      | car     | 
| Smith | GM      | truck   | 
| Jones | Ford    | car     | 
-----------------------------
Run Code Online (Sandbox Code Playgroud)

...分为3个表:

ac(agent, company)
cp(company, product)
ap(agent, product)

-------------------   ---------------------   ------------------- 
| AGENT | COMPANY |   | COMPANY | PRODUCT |   | …
Run Code Online (Sandbox Code Playgroud)

database-design relational-database database-normalization

13
推荐指数
3
解决办法
1万
查看次数