在数据库中的各种对象的命名、后台程序的代码编写应采用常用英语单词大小写敏感的形式,各种对象命名长度不要太长,过长可以使用单词缩写,这样便于在开发中让别人更容易看懂你的数据库结构。
2. 数据类型的选择
1)在SQL 中使用smallint , tinyint 等类型要特别小心。比如,假如想看看月销售总额,总额字段类型是smallint,那么,如果总额超过了$32,767 就不能进行计算操作了。
而ID 类型的文本字段,比如客户ID 或定单号等等都应该设置得比一般想象更大。假设客户ID 为10 位数长。那就应该把数据库表字段的长度设为12 或者13 个字符长。但这额外占据的空间却使将来无需重构整个数据库就可以实现数据库规模的增长了。
2)Text 和Image字段属指针型数据,主要用来存放二进制大型对象。这类数据的操作相比其它数据类型较慢,因此要避开使用。
3.选择键和索引(数据库逻辑设计)
键选择原则:
1) 键设计4 原则
• 为关联字段创建外键。
• 所有的键都必须唯一。
• 避免使用复合键。
• 外键总是关联唯一的键字段。
2) 不要用用户的键(不让主键具有可更新性)
在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。
4. 数据完整性设计(数据库逻辑设计)
1) 完整性实现机制:
实体完整性:主键
参照完整性:
父表中更新删除数据:级联更新删除。
2)数据的一致性和完整性。
为了保证数据库的一致性和完整性,设计人员往往会设计过多的表间关联(Relation),尽可能的降低数据的冗余。表间关联是一种强制性措施,建立后,对父表(Parent Table)和子表(Child Table)的插入、更新、删除操作均要占用系统的开销。如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。
3)数据的唯一性:
为了保证数据的唯一性,还需要在设计表时给部分字段创建唯一索引,设置约束,这样子可以防止在向数据库中传入数据时有重复数据的写入。
5. 其他设计技巧
1) 编制文档
对所有的快捷方式、命名规范、限制和函数都要编制文档。
对数据库文档化,这样,当过了一段时间后再回过头来做第2 个版本,犯错的机会将大大减少。
2) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
3)不要采用编号来定义主键
主键设计有个原则,就是主键不应具有任何实际意义.这条其实是非常重要,有人就是觉得编号本身是唯一的,可以作为主键用,但可能会为以后带来麻烦.因为带有实际意义的字段,还是存在被修改的可能性.而对于主键最大的忌讳就是修改主键,这可能会导致非常严重的不可估计的后果.比如学生编号,平时以为永远不会修改,但修改的可能还是会存在.