首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计问题

数据库设计问题
EN

Database Administration用户
提问于 2011-08-18 08:42:37
回答 3查看 640关注 0票数 3

我的问题由三部分组成:

我什么时候才能确定我的数据库设计是完美的?

返回到数据库设计以更改某些问题(例如,添加新列、删除列、更改数据类型、添加新表等)。被认为是一种糟糕的做法还是很正常?

是否有专门用于ERDnormalization培训的网站或书籍?我需要大量的示例、实践和案例研究,并提供推荐的答案,以增强我在数据库设计方面的技能,并避免我所做的糟糕的数据库设计。

注意:我不需要书籍来解释这些概念,我需要的是实践、例子和案例研究,以及推荐的答案。

EN

回答 3

Database Administration用户

回答已采纳

发布于 2011-08-18 12:12:17

1)什么时候能确保你的数据库设计是完美的?

您的设计永远不会完美,因为业务逻辑和数据量总是在变化。完美是很难定义的,我见过一些系统在部署上很出色,但是在添加了几年的数据之后,性能却很差。令人遗憾的是,一些应用程序开发人员将数据库视为黑匣子,这意味着一些数据库的部署具有缺少主键或索引的关键表。完美的CIO,因为他们得到了及时和预算交付的应用程序可能是一个痛苦的开发人员/ DBA谁必须处理的问题。

下面是我要找的一些指标,表明你的设计已经准备好了

a)广泛使用主键、唯一键、外键、索引,更多的是在较大的表中使用(我之所以提到这一点,是因为我看到了缺少此功能的商业产品)。

b)使用约束和默认值,尽可能重复应用程序逻辑在数据库中的实际应用。你不可能捕捉所有的东西,但只要知道一个条目总是有一个价值,就会提供心灵的平静。

c)测试、测试、测试:从用户的角度测试数据输入,从管理者的角度测试谁想要一个概述,从分析师的角度测试谁希望看到趋势,如果你发现自己加入了9个需要全表扫描的大表,以便找出分配给用户的工作,然后你可能需要重新检查东西。并不是所有的事情都是简单的,但要满足用户的需求却是一种麻烦的暗示。

( d)做一些关于如何扩展数据库的白日梦。如果我需要添加一个新的属性到一个工作单位,它有多难?如果不对表进行更改,还能完成吗?如果你被要求增加一种新的工作,它有多难。(工作可以是一个产品,一个交易,一个案例)

( e)个人和组织为我提供工作时间。创建、编辑、去复制和报告它们有多容易?

( f)您支持多少种用户语言?需要什么样的字符集。例如,如果你打算支持英语和西班牙语,如果设计必须扩展到包括法语和意大利语,会发生什么?

( 2)返回数据库设计以更改某些问题(例如添加新列、删除列或更改数据类型或添加新表或.)被认为是一种不好的做法还是很正常?

我想说,对于一个业务逻辑频繁变化或最终用户需求被添加到的应用程序来说,这是正常的。

票数 6
EN

Database Administration用户

发布于 2011-08-18 09:39:43

  1. 但由于数据库通常是业务的基础(例如,应用程序是建立在它之上的),因此值得努力使其处于最佳状态。“最好”是一种实际的考虑,取决于你的需要,而不是理论上或思想上的完善。
  2. 需求的变化--如果你的数据库不同步变化,那么它最终会变成一个白象,其他的一切都是围绕着构建的,而不是坚实的地面,其他的一切都是建立在这个基础上的!
票数 5
EN

Database Administration用户

发布于 2011-08-18 09:23:12

  1. 在正常使用的情况下,当数据库服务器性能良好时,数据库设计是完美的。让我解释一下:我用完美的设计管理了很多数据库。实体、关系等等都是完美的。但是这个系统并没有被真正的使用。如果你的用户报告你的低性能,你最好去修饰你的表,而不是回答用户‘我的设计是完美的,我不知道如何使它更快!’
  2. 返回到DB设计是正常的。我认为,如果你在设计中发现了新的问题,最好是改变设计,而不是“周密的解决办法”。
票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/4750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档