我的问题由三部分组成:
我什么时候才能确定我的数据库设计是完美的?
返回到数据库设计以更改某些问题(例如,添加新列、删除列、更改数据类型、添加新表等)。被认为是一种糟糕的做法还是很正常?
是否有专门用于ERD和normalization培训的网站或书籍?我需要大量的示例、实践和案例研究,并提供推荐的答案,以增强我在数据库设计方面的技能,并避免我所做的糟糕的数据库设计。
注意:我不需要书籍来解释这些概念,我需要的是实践、例子和案例研究,以及推荐的答案。
发布于 2011-08-18 12:12:17
1)什么时候能确保你的数据库设计是完美的?
您的设计永远不会完美,因为业务逻辑和数据量总是在变化。完美是很难定义的,我见过一些系统在部署上很出色,但是在添加了几年的数据之后,性能却很差。令人遗憾的是,一些应用程序开发人员将数据库视为黑匣子,这意味着一些数据库的部署具有缺少主键或索引的关键表。完美的CIO,因为他们得到了及时和预算交付的应用程序可能是一个痛苦的开发人员/ DBA谁必须处理的问题。
下面是我要找的一些指标,表明你的设计已经准备好了
a)广泛使用主键、唯一键、外键、索引,更多的是在较大的表中使用(我之所以提到这一点,是因为我看到了缺少此功能的商业产品)。
b)使用约束和默认值,尽可能重复应用程序逻辑在数据库中的实际应用。你不可能捕捉所有的东西,但只要知道一个条目总是有一个价值,就会提供心灵的平静。
c)测试、测试、测试:从用户的角度测试数据输入,从管理者的角度测试谁想要一个概述,从分析师的角度测试谁希望看到趋势,如果你发现自己加入了9个需要全表扫描的大表,以便找出分配给用户的工作,然后你可能需要重新检查东西。并不是所有的事情都是简单的,但要满足用户的需求却是一种麻烦的暗示。
( d)做一些关于如何扩展数据库的白日梦。如果我需要添加一个新的属性到一个工作单位,它有多难?如果不对表进行更改,还能完成吗?如果你被要求增加一种新的工作,它有多难。(工作可以是一个产品,一个交易,一个案例)
( e)个人和组织为我提供工作时间。创建、编辑、去复制和报告它们有多容易?
( f)您支持多少种用户语言?需要什么样的字符集。例如,如果你打算支持英语和西班牙语,如果设计必须扩展到包括法语和意大利语,会发生什么?
( 2)返回数据库设计以更改某些问题(例如添加新列、删除列或更改数据类型或添加新表或.)被认为是一种不好的做法还是很正常?
我想说,对于一个业务逻辑频繁变化或最终用户需求被添加到的应用程序来说,这是正常的。
发布于 2011-08-18 09:39:43
发布于 2011-08-18 09:23:12
https://dba.stackexchange.com/questions/4750
复制相似问题