当前位置:  开发笔记 > 编程语言 > 正文

数据库设计最佳实践

如何解决《数据库设计最佳实践》经验,为你挑选了5个好方法。

我非常精通SQL Server,MySQL,Oracle等,但把这些数据库产品放在一边,是否有资源可以帮助我很好地设计关系数据库?是否有类似于数据库设计的模式或最佳实践?

我曾经多次看到数据库通常无法扩展; 人们有个人偏好,保留像isChecked列这样的列,它本质上是布尔值但存储为Char(1),其值为'Y'和'N'而不是0和1对我来说听起来更好.在进行数据库设计时不会犯常见错误的方法?

书籍或文章的链接将受到高度赞赏.

提前致谢.



1> Rockcoder..:

几点:

尽可能多地了解问题领域.如果不知道自己要设计什么,就无法创建好的数据模型

熟悉 数据库提供程序提供的数据类型

如何正确使用规范化和设计表

性能:何时以及如何应用索引,如何编写有效的查询等.

何时以及如何使用不同的DB对象,如视图,过程,函数,触发器


学习(或实现)的另一点是,您认为应该在应用程序数据层中应该有多少逻辑可以通过触发器,外键,视图等直接在数据库中实现,并大大降低了丢失的可能性数据完整性.

2> S.Lott..:

有许多数据库设计模式.它们通常不是很好的形式化,因此您可能只需要查看大量的数据库设计.

例如,请参阅福勒关于设计模式的书籍.还有Nock的书.

有博客,比如数据库程序员.

有一本IEEE书籍,基于模式的数据库设计和实现.

谷歌搜索(链接)出现了24M的点击量.



3> Scott Wisnie..:

我对此的看法有点逆势而上.我建议,不要过分强调数据库的设计.

有时这可能很难.对于内部LOB应用程序,业务的主流观点通常是DATA是主要资产,而软件在某种程度上是可消耗的.

我的建议是:不要买它.

实际上,资产是公司与数据交互的能力.查看它,操纵它,并根据它做出决定.

这意味着即使它们可能对数据赋予很高的价值,它们实际上重视的是您正在编写的软件.

这意味着我将把大部分精力集中在构建有效的用户体验上,而不是"设计完美的数据库".数据库实际上只是一种工具,可以让您提供用户体验.

关系数据模型的关键特性是数据和访问路径独立性.您可以添加列,更改密钥,引入或删除索引等,同时对使用它的应用程序的影响为零(或接近于零).

这使得数据库结构非常柔韧.

试图将数据库设计为"对未来具有灵活性"或"优化性能"主要是浪费精力.

更改数据库的结构对系统的影响相对较小.

此外,在您遇到需要扩展的场景之前,您实际上无法预测数据库的扩展方式.您最好的选择是等到遇到性能问题.然后专门解决它们.

但是,更改应用的用户体验通常会更加昂贵.UI工作非常耗时,通常需要一段时间才能正确完成.

所以,我建议你:

    只是制作一个糟糕的数据库设计

    对您遇到的实际性能方案做出反应

    将精力集中在用户体验上,而不是数据库上


实际上很有建议.通常这个学科的学生都表现出了很好的设计,对他们来说看起来很神奇,但如果他们开始步伐1则不会.

4> 小智..:

对抗Dillie-O的建议.我建议您不要将所有查找放在一个表中.通常,这是试图强迫OO设计进入关系数据库.它可以完成,它符合OO开发人员的世界观,但它会导致严重的数据库设计.

跳转到Google并搜索"MUCK Tables",引导您讨论Massively Unified Code-Key Tables.或者,您可以查找"一个真正的查找表"进行讨论.或者甚至阅读Joe Celko的文章One True Lookup Table.



5> Brian..:

我没有在这个问题中找到我想要的东西,但是这个在DB设计中有一些设计模式的建议

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有