文章插图
数据表的脚本化请使用migrate来处理新建、修改、删除表等操作 , 虽然它并不能进行数据的还原 , 但是对于结构 , 还是不错的 。
库表的一些设置法则
- 表字符集选择UTF8 , 如果要存放emoji , 则统一选择UTF8mb4(MySQL5.5.3以后支持)
- 存储引擎使用InnoDB
- 【通用数据库命名规范(MySQL数据库6大设计规范总】不在数据库中存放图片、文件等
- 变成字符串尽量使用varchar类型
- 库名、表名、字段名均不适用保留字
- 库名、表名、字段名、索引名使用小写字母
- 多个单词用下划线 , 要做到见名知意
- 库表名不要设计过长 , 越少越好
- 除非你的字段真的想存Null , 否则所有字段均定义为Not Null
- 使用varchar来存储变长字符串 , 但是要注意varchar(M)里的M是指字符数而不是字节数
- 字段类型满足最小化原则 , 非负整数使用unsigned
- 浮点数使用decimal来存储 , 用float有时候会有问题
- 少用blob text
- 使用datetime存放时间(不用timestamp , 因只能存到2038年 , 而且现在在占位上和datetime节省优势越来越低)
关于将时间存储为int格式的问题这更多算一个mysql的技巧 , 将时间存储为int的时间戳形式 , 这样的设置可能带来运算上的方便 , 但是也失去了时间类型的意义 , 有利有弊吧 。
表是单数还是复数在Laravel框架中对表的命名有一些推荐(均为复数) , Yii并没有推荐 , 北哥习惯使用单数 , 代表一种抽象类型 , 而且使用gii的时候也特别方便 。
当然这不是硬性的 , 但是你需要统一 , 不要一会单数一会复数 。
关于字段备注首先要说的是 , 每个数据表的字段必须要写 , 除此之外 , 当你用gii生成一个模型的时候 , 选择上“Generate Labels from DB Comments” , 则生成的模型中attributeLables的值自动就是你的字段备注 , 方便的不要不要的~
关于表前缀的问题当我们数据库中存在不同应用的时候 , 我们喜欢用表前缀来区分 , 比如discuz、ecshop , 在使用gii的时候 , 选择上“Use Table Prefix” , 则生成的模型不会带这些前缀 , 且自动适配 , 这个功能也很贴心 。
- 如何给鼠年宝宝取男女通用小名鼠年宝宝男女通用小名推荐
- tcl电视安装当贝市场详细方法(通用教程通过U盘安
- 邱峰电子电子元件的组合就成了电子电路|会把鱼吸过来的逆咸水脉冲器发电机后级吸鱼海水淡水通用机捕鱼器
- 雪佛兰价格 - 雪佛兰15万左右的车
- 数据库|饿了么免单活动上热搜,是薅还是被薅羊毛?
- 简介两者定义及优劣势 什么是关系型数据库和非关系型数据库
- 数据库的重要性有哪些方面(数据的重要性和意
- 12306泄漏事件怎么回事(12306数据库泄露信息查询
- 12306账号泄露查询(12306数据库泄露信息查询工具
- 北京市|36氪首发|云原生数据库公司「拓数派」完成新一轮战略融资,估值已达准独角兽级别