loading请求处理中...
手机版 新型创意托付式服务平台 全国站
小商标成就大品牌×
当前位置: 首页 > 威客攻略 > 开发
免费发布需求,接收报价与方案

简单罗列数据库设计的6个小知识点

2014-11-19 15:32:13 阅读 15031次 0 标签: 开发 作者: riche

简单罗列数据库设计的6个小知识点


    1、主键PK的取值方法

   在数据库设计中,PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。

  2、正确认识数据冗余

  主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。

  如:商品中的“单价、数量、金额”三个字段,“金额”就是由“单价”乘以“数量”派生出来的,它就是冗余,而且是一种高级冗余。冗余的目的是为了提高处理速度。只有低级冗余才会增加数据的不一致性,因为同一数据,可能从不同时间、地点、角色上多次录入。因此,我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。
 
    3、数据建模步凑

    1. 分析需求,画出用例图
    2. 编写用例文本,设计界面原型,模拟功能性场景
    3. 找实体
    4. 识别实体的属性
    5. 识别实体之间的关系(一对一,一对多,多对多)
    6. 画出概念数据模型(ER图)
    7. 将概念数据模型转化为物理数据模型(表格)
    8. 根据范式修改物理数据模型继续重复5
 
    4、E--R图没有标准答案

  信息系统的E--R图没有标准答案,因为它的设计与画法不是惟一的,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。反之要修改E--R图。尽管它没有惟一的标准答案,并不意味着可以随意设计。好的E—R图的标准是:结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。

    5、ER中的实体和OO中的领域对象的区别:

    1. domain model抽象层次更高,更加贴近于现实世界和业务,而实体贴近于数据库
    2. 一个实体必然对应一张表,而domain mode则可能是虚拟的只存在于业务层(如购物车)而不需要持久化到数据库,或者一个domain model由多张表的数据共同组合而成
    3. 当业务复杂时,使用domain model描述需求效果更好,但是相应的在domain model和数据库表之间的映射会变得十分复杂,匹配程度很低。

    4. 以数据库为出发点进行数据建模,很容易上手(即界面上要显示的数据都来自于数据库的某张表格),但是业务复杂后正确的设计需要丰富的经验。以OO为出发点进行建模,不论业务复杂与否,很容易抽象出大致的domain model,但是当业务复杂后在做domain model和数据库表之间的映射则会变得非常困难。

    6、要善于识别与正确处理多对多的关系

  若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。

  如:在“图书馆信息系统”中,“图书”是一个实体,“读者”也是一个实体。这两个实体之间的关系,是一个典型的多对多关系:一本图书在不同时间可以被多个读者借阅,一个读者又可以借多本图书。为此,要在二者之间增加第三个实体,该实体取名为“借还书”,它的属性为:借还时间、借还标志(0表示借书,1表示还书),另外,它还应该有两个外键(“图书”的主键,“读者”的主键),使它能与“图书”和“读者”连接。

 
买创意 买设计 上一品威客网

数据库设计公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

数据库设计相关文章

留言(0 展开评论

您需要注册登录才能发表言论

数据库设计服务排行榜
SERVICE LIST 更多
数据库设计与优化
¥500元 /小时 成交5
广州全栈科技有限公司...
数据库设计
价格面议 成交2
福州原创设计
采集服务
¥0元 /一口价 成交1
adition的店铺
数据库设计
价格面议 成交0
lihantc的店铺
数据库设计
价格面议 成交0
珠海盛大科技
CRM开发
价格面议 成交0
深圳市瑜文科技
北京专业数据库设计...
价格面议 成交0
北京零下科技有限公司...
数据库设计
价格面议 成交0
牛蛙工作室
数据库开发
价格面议 成交0
北京三言网络科技有限公司...
数据库设计与开发
价格面议 成交0
光合网络科技