基本建表规范:
- 自增主键一般都需要设置(
id
int 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
)
数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。
标签:范式,长度,规范,视图,字段,简单,建表,主键,冗余 来源: https://blog.csdn.net/gym02/article/details/122172799
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。