基本建表规范:
- 自增主键一般都需要设置(
idint unsigned NOT NULL AUTO_INCREMENT`); - 不定长字符串长度使用varchar类型,需要考虑实际业务最长长度的基础上扩容20%到40%为宜,且长度取2的指数长为宜(
64,128,256等); - 定长长度使用char类型,长度直接取实际长度即可,类似于手机号字段;
- 所有字段除了软删除字段(
delete_time),都需要设置为not null,并且设置默认值(字符串默认值为’’,整型默认值为0); - 基本所有的字段,表名都加上备注,除了自增主键,创建时间,更新时间之类的通用字段。
- 表结构需指定存储引擎,默认字符集。
- 关于索引的创建,建议只创建其它表在这个的表的外键和查询频繁的字段。其它字段在业务扩展时需要及时跟进并设定。
- 表名和字段名以英文加下划线隔分,字段中英文单词以不超过三个单词为宜。
- 状态字段设置为tinyint,同时备注写清楚不同数字代表的类型。
范式标准:
基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式(数据库建表三范式简单了解与思考)的数据库设计,往往不是最好的设计。
为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
冗余:
主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚。
非键字段的重复出现, 才是数据冗余。而且是一种低级冗余,即重复性的冗余。
高级冗余不是字段的重复出现,而是字段的派生出现(派生表)。
派生属性解释:
比如学生实体有姓名,出生年月这些属性,
那么年龄是可以通过出生日期计算得到的。年龄就是派生属性。
视图:
对于某些与国家政治、安全利益有关的信息系统,视图的作用更加重要。
这些系统的基本表完成物理设计之后,
立即在基本表上建立第一层视图,这层视图的个数和结构,与基本表的个数和结构是完全相同。
并且规定,所有的程序员,一律只准在视图上操作。
(问题:可以直接对视图进行update,delete操作吗?
答:某些情况可以,有些情况不可以,
例如join 建视图:create view a as select * from b)
5255

被折叠的 条评论
为什么被折叠?



