北京哪家医院治疗白癜风好呢 http://yyk.39.net/bj/zhuanke/89ac7.html对应用软件的开发,特别是用到数据库系统的软件开发,都需要对数据库进行设计。当然也可以不用设计,用到什么表就建什么表。通常大部分的系统开发都是后者。也有些进行数据库的设计,但是鉴于开发人员或者数据库设计人员的水平和能力,设计的数据库对系统开发和报表开发都造成很大的困难。虽然也能开发系统和出报表,但是系统开发和报表开发的难易程度不同。造成系统运行效率低下,数据量稍微大一点,报表就要等很长时间才能出来。
数据库有自己的设计原则,那就是数据库的三范式。除此之外,数据库的设计也要考虑对开发代码的影响,也就是数据库中数据的分类逻辑要清晰。数据的逻辑分类清晰,系统开发的代码也会变的简洁、可读性比较好、执行效率也会比较高。
怎样才能做到数据库中数据的分类逻辑清晰或者说怎样的数据分类是逻辑清晰的呢?数据分类清晰也是避免数据冗余的有效方法。举一个在开发中遇到的例子:有一个实体类是客户,还有一个实体类是商户。关系是(1:N)一个客户有一个或者多个商户。那么对于登录用户来讲,有两种用户,一种是能看到客户下面的所有商户,另一种是只能看到这个客户下面的某个商户。目前的做法是用一个用户属性(字段)来标识是主用户和子用户,商户表中有两个字段来标识所属客户和所属商户。主用户查“所属客户“字段,子用户查“所属商户”字段,来找到对应的商户。这样就把关系和数据放在一起,对数据的等价关系没有理清。同时对系统开发也有影响,系统开发时要判断用户的属性,对系统开发和数据库的数据都有不好的影响。
比较好的做法是,商户表中只有一个对应的客户,也就是只有一个标识客户的字段。另外有一张表来维护用户和商户的关系。不管这个用户有多少商户,都可以通过一个表来找到。增加商户或者减少商户都在这张表里维护就可以了。对系统的开发没有影响。总的原则是尽量不改变数据的关系,而是通过增减数据来实现一些变化。这样就方便维护、扩展和高效。
预览时标签不可点收录于话题#个上一篇下一篇