数据库设计——规范性

目前,负责数据库设计部分,然而,有很多问题。

Q1、数据库表名、字段名、表空间名等一系列标识符都没有规范可循。

这直接导致了数据库设计的杂乱无章,不仅容易出粗,对保持一致性也有很大影响。

A1、在数据库设计到了物理设计阶段,一定要明确所遵循的数据库规范。

例如:表名:TBL_[自由命名部分]       索引:IDX_[自由命名部分]

Q2、数据类型的确定。

根据不同的业务需求,采用合适的数据类型很重要。注意:要适当做出一些空余空间防止字段长度的增长;varchar2(n)等一系列字符型,n表示字节数还是字符数以及上限等;可适当添加冗余字段来提高检索的性能。

Q3、表名及字段注释。

为了方便阅读,建议将某些容易产生混淆的字段加以注释。并且,表名都加中文注释。

Q4、数据库主键用序列生成还是Java生成UUID?

在Mysql和SQLServer中,可直接设置该字段的属性为自增长即可,然而Oracle的自增长需要借助序列来生成(不知这样设计的好处是什么),因此有些开发人员会摒弃此种方式,而采用程序生成。

Q5、是否使用外键。

目前得出的结论也比较认同的观点是:

1,在大型系统中(性能要求不高,安全要求高),使用外键;在大型系统中(性能要求高,安全自己控制),不用外键;小系统随便,最好用外键。
2,用外键要适当,不能过分追求
3,不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。

参考网址:http://apps.hi.baidu.com/share/detail/15593176

Q6、数据库的权限管理

根据不同的业务数据的存储,可以设计不同的表空间,进而可以创建不同的用户,分配不同的访问权限。切记:数据库的安全性很重要,因此,不同用户的角色和权限分配需慎重,这点在现在的设计中还亟需加强!

Q7、高效数据库设计工具的使用。

目前项目中使用的是POWERDESIGNER,ERWIN还没用过。

根据某人的经验之谈,pd里的数据库设计一定要和数据库文档里的设计一一对应。因为开发阶段的DB设计和部署阶段的DB设计会有一些不同,甚至很大的不同。例如:开发的DB,将所有字段的类型都是varchar2(500),一般情况下是满足需求的,但是部署当然不行了,因此,维护pd、维护文档很重要。

另外,pd里面的版本控制比较不人性化,不能加一些修订状态(可能是本人要求太高哈),因此,修改之前留存。

最后,如果是数据库的管理者,其他人都通过你来操纵数据库设计,那么一定要确保数据库的完整性、一致性。因为开发人员可能只关注自己部分的设计,不能从全局把握,因此,不能盲目服从他们的需求,要纵观整个数据库,做出适当的修改。比如,一个表会多个人在使用,你删掉的部分可能恰恰是其他人所使用的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17032106/viewspace-682746/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17032106/viewspace-682746/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值