我应该实现读取数据库规范化(使用连接表)还是应该将ENUM类型用于静态或动态数据?
例如:
我有一个表USER用user_status.我应该创建一个表格status表,还是创建一个包含状态的ENUM列表?
谢谢G
我正在努力寻找一个很好的资源来研究功能依赖和规范化.
任何人都知道我应该在哪里看?我难以区分FD是1NF,2NF还是3NF?
我一直在阅读维基百科,并使用谷歌搜索找到了很好的研究,但找不到任何简单的解释.
也许你们都可以分享你在生活中学习FD和正常化的方式.
我处于开发数据库驱动系统的早期阶段,系统的最大部分围绕着继承类型的关系.有一个包含大约10列的父实体,并且将有大约10个从父级继承的子实体.每个子实体将有大约10列.我认为为父实体提供自己的表并为每个子项提供自己的表 - 每个子类的表结构是有意义的.
今天,我的用户要求查看我创建的系统的结构.他们对每子类表结构的想法犹豫不决.他们更喜欢一个大~100列表,因为它们更容易执行自己的自定义查询.
为了用户的缘故,我应该考虑对数据库进行非规范化吗?
database database-design denormalization database-normalization
我正在为学校管理系统创建系统,并提出附加的数据库模式.
数据库图http://oi40.tinypic.com/15x21ig.jpg
以下是系统的工作原理:
我是数据库规范化的初学者,如果有人能给我一些提示,如果数据库看起来不错,我会很高兴.
编辑:
此外,只有一个登录点.在上述情况下,在登录期间,用户必须从下拉列表中选择用户类型.该下拉选择将用于查询相应的表以登录系统.另一种方法是使用一个公用user表,它将存储user_id, email, password, last_login_date, last_login_ip但会将其他细节存储在各自的表中,例如student, parent, teacher.那么,实现它的首选/正确方法是什么?
mysql database-design relational-database database-schema database-normalization
我目前正在尝试创建一个数据库,其中很大一部分数据是暂时的.在阅读了许多这样做的技术(大多数涉及6nf标准化)后,我遇到了锚点建模.
我正在开发的模式非常类似于Anchor Modeling模型,特别是因为用例(Temporal Data + Known Unknowns)是如此相似,我很想完全接受它.
我遇到的两个最大的问题是,我找不到任何详细说明这种方法的负面影响的内容,而且我找不到任何对生产中用于战争故事和陷阱的组织的引用,这些都是我需要注意的.
我想知道这里是否有人熟悉,可以简要地阐述一些否定因素(因为积极因素在研究论文及其网站上得到了很好的宣传),以及在生产环境中使用它的任何经验.
sql database-design temporal-database database-normalization anchor-modeling
我发现这很多,我不确定接近它的最佳方法.
我的问题是如何在使用外键查找表或直接在请求它的表中使用查找表值之间做出决定,完全避免查找表关系.
要记住的要点:
使用第二种方法,如果在查找表中更改了数据,则需要对引用数据的所有记录进行批量更新.
这更侧重于有很多列引用许多查找表的表.因此,每次查询表时,许多外键意味着很多连接.
这里有最佳实践,还是需要考虑的关键点?
数据库的新手,所以不要对简单的问题感到不满.就我的谷歌和聚集的知识规范化而言,减少了数据的冗余并提高了性能.但实际上,我不明白将主表划分为其他小表,应用它们之间的关系,使用所有可能的联合,子查询,联接等检索数据的确切原因.为什么我们不能拥有所有数据单个表并根据需要检索它们.我有点困惑.
为什么有损分解称为有损?我们究竟在有损分解中损失了什么?
存在关系R.它被分解为两个关系R1和R2.
如果R =(R1 JOIN R2)那么它就是无法连接分解.没关系.
如果R是(R1 JOIN R2)的子集,那么有损连接分解.
这是有损连接分解,在连接R1和R2后,我们实际上得到的记录与R相比更多.那么我们失去了什么.?
我正在使用两个在线资源来获得对5NF的理解,而没有任何严格的数学和证明.
但是,我无法理解这些参考文献中的任何一个!
它说:"但假设某条规则有效:如果代理商销售某种产品,而他代表一家制造该产品的公司,那么他就会为该公司销售该产品."
然后,继续分解原始表(所有表名都由我给出)......
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)