loading请求处理中...

来自数据库设计专家的宝贵经验之谈

2021-12-01 07:38:29 阅读 12909次 标签: 数据库设计 作者: riche
来自数据库设计专家的宝贵经验之谈

     1、降低对数据库功用的依靠

    功用应该由程序完成,而非DB完成。缘由在于,假如功用由DB完成时,一旦替换的DBMS不如之前的系统强壮,不能完成某些功用,这时我们将不得不去修正代码。所以,为了杜绝此类情况的发作,功用应该有程序完成,数据库只是担任数据的存储,以到达最低的耦合。

    2、关系与表数量


    描述1:1关系最少需要1张表;描述1:n关系最少需要2张表;描述n:n关系最少需要3张表。

    3、列意味着唯一的值

    如果表示坐标(0,0),应该使用两列表示,而不是将“0,0”放在1个列中。

    4、列的顺序


    列的顺序对于表来说无关紧要,但是从习惯上来说,采用“主键+外键+实体数据+非实体数据”这样的顺序对列进行排序显然能得到比较好的可读性。

    5、定义实体关系的原则

    当定义一个实体与其他实体之间的关系时,需要考量如下:
    牵涉到的实体 识别出关系所涉及的所有实体。
    所有权 考虑一个实体“拥有”另一个实体的情况。
    基数 考量一个实体的实例和另一个实体实例关联的数量。

    6、主键与外键

  一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。

    7、人工键与自然键
  

    人工键——实体的非自然属性,根据需要由人强加的,如GUID,其对实体毫无意义;自然键——实体的自然属性,如身份证编号。人工键的好处:键值永远不变;永远是单列存储。人工键的缺点:因为人工键是没有实际意义的唯一值,所以不能通过人工键来避免重复行。MeteorSeed建议全部使用人工键。

    在设计阶段我们无法预测到代码真正需要的值,所以干脆放弃猜测键,而使用人工键。每张表都需要有一个对用户而言有意义的自然键,在特殊情况下也许找不到这样一个项,此时可以使用复合键。这个键我在程序中并不会使用其作为唯一标识,但是却可以在对数据库直接进行查询时使用。

   8、智能健与非智能键

    智能键——键值包括额定信息,其依据某种约定好的编码标准进行编码,从键值自身能够获取某些信息;开发人员偏爱这种包括信息的键值,程序盼望着其间潜在的数据;数据库管理员或许规划者则厌烦这种智能键,原因是智能键对数据库是潜在的危险。

    非智能键,单纯的无意义键值,如自增的数字或GUID。前面提到,数据库规划的准则之一是不要把具有独立意义的值的组合完成到一个单一的列中,应当运用多个独立的列。运用单一列完成智能键存在这样一个危险,即是咱们也许在规划阶段无法预期到编码规矩也许会在后期发生改变。比方,构成智能键的部分键的值用完而导致规矩改变或许长度改变,这种编码规矩的改变关于程序的有效性验证与智能键解析是破坏性的,这是体系运维人员最不期望看到的。

数据库设计公司推荐

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

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
数据库设计相关任务
DESIGN TASK 更多
为APP设计一款logo

¥1200 已有192人投标

车辆服务公司logo设计

¥1600 已有120人投标

药店logo设计

¥500 已有5人投标

给科技企业设计一个LOGO

¥600 已有10人投标

贺图插画设计

¥100 已有1人投标