数据库表的设计
总结一下在设计数据库时的经验:
设计表:
1、每个表都应添加3个有用的字段
id:自增(必要时)
create_time:创建时间 GETDATA()函数
version:版本信息,如果后期需求发生变化,前期数据可以不用修改。
(理解)追责:谁什么时间犯错
2、地址、电话可以采用多个字段
描述街道地址:address_province,address_city,address_county,address_town,address_street(这样可以提高灵活性)
描述电话号码:如果数据量大的话,电话号码、邮件最好有自己的表,其间有自身的类型和标记类别
3、字段的类型应当充足
在SQLServer中使用smallint和tinyint类型是应当注意数据超出范围
4、索引使用原则:
索引是从数据库中获取数据的最高效方式之一。绝大部分的数据库性能问题都可以采用索引技术得到解决。(对于小数据性能提高的少)
1) 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。
2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。
3) 不要索引memo/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。
4) 不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。
5、表的命令多个词使用_连接
6、SQLServer的表名有时候需要添加[],例如select * from [user],其中的*最好能换成字段,这样避免二次查找,因为它在查找时首先看看都有哪些字段。