Mysql数据库设计总结
来源:互联网 发布:电脑wifi网络连接不上 编辑:程序博客网 时间:2024/05/16 14:12
一、数据建模
1、概念模型
概念模型需要抽象出重点字段,关键是体现实体间的关系,比如继承,联系、对应关系
2、逻辑模型
对概念模型进行具体化,关键是表与表的关联,以及具体的内容,比如定义字段名、数据类型等,及表与表的关系
3、物理模型
基于逻辑模型生成不同DB的数据结构,可生成脚本直接运行,比如DB对应数据类型
二、库、表、字段
1、库名尽量使用简写,保证简短
2、表名尽量不用简写,保证直观
3、字名尽量不用简写,保证直观
注意点:
1,提前定义好元数据,避免相同字段在不同表存在不同的名称
2,数据长度、非空根据项目(产品)需要定义,如果项目(产品)没有严格的性能要求,可放宽长度、不用非空约束
3,任何对象尽量一次性定义好,避免多次改动影响开发人员进度。
三、关键点
1、主键生成策略
(1) 尽量不使用UUID作为主键,既占用空间,也无法使用mysql自带的表分区,不利于读写和拓展
(2) 如果多点写入,所有表主键生成策略必须代码生成(虽然可以改变自增步长来区别,但无法拓展写)
(3) 一对一的表可以使用时间戳+随机数等方法生成20位以内的整形,例如用户表的用户ID,一对多的表可以使用自增,例如用户关注表
(4) 数据字典表,公共表,可以使用固定长度的字母+自增,例如char(6),st0001,或者固定长度的自增补零,例如int(5),00001
2、NULL
NULL确实会对索引有影响,在MyISAM中甚至还可能导致固定大小的索引(例如只有一个整数列的索引)变成可变大小的索引。把NULL变为NOT NULL带来的性能提升不大,所以调优时没有必要把这里视为“主要矛盾”。当然能避免尽量避免。
四、DB操作和管理
1、任何DDL、DML语句都需要经过统一的审查和执行,不能由开发人员单独执行
2、提供给开发人员和连接DB的用户名一定是非root的,并且一般只有CURD,避免开发人员拥有DDL权限
3、任何DB的操作需要广播相关人员,提示其及时更新
- Mysql数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL数据库设计总结
- MySQL 数据库设计总结
- MySQL 数据库设计总结
- MySQL数据库设计总结
- 《mysql学习》-- MySQL数据库设计总结
- MYSQL数据库设计的一点总结
- MYSQL数据库设计的一点总结
- MySQL数据库索引的设计原则总结
- MYSQL数据库设计的一点总结
- mysql数据库设计总结(个人经验)
- 互联网产品mysql数据库设计总结
- Warning: POST Content-Length of 81360713 bytes exceeds the limit of 3145728 bytes in Unknown on line
- 360手机助手信号栏设置透明
- java 多线程编程之join()的用法
- Android开发中,那些让你相见恨晚的方法、类或接口
- 性能测试知多少---性能需求分析
- Mysql数据库设计总结
- K-近邻算法
- ZOJ-3443-Bessel Function II
- BPFP系列:优化电池使用时间:确定和监控网络连接状态
- Java多线程创建的方式
- 汇编cmp比较指令详解
- iOS学习笔记23-音效与音乐
- Linux学习笔记--压缩和解压缩命令
- iOS开发CocoaPods使用详细说明