I personally would use a model similar to the following: The product table would be pretty basic, your main product details: create table product ( part_number int, (PK) name varchar(10), price int ); insert into product values (1, 'product1', 50), (…
[原创]面试官:讲讲mysql表设计要注意啥 需要设计一个主键 因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键.所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显式的用上主键索引,提高查询效率! 主键是用自增还是UUID? 肯定答自增啊.自增插入性能好. innodb 中的主键是聚簇索引.如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页.如果不是自增主键,那么可能会在中间插入…
面试官:讲讲mysql表设计要注意啥? 引言 大家应该知道烟哥最近要(tiao 咳咳咳),嗯,不可描述! 随手讲其中一部分知识,都是一些烟哥自己平时工作的总结以及经验.大家看完,其实能避开很多坑.而且很多问题,都是面试中实打实会问到的! 比如 OK,具体有下面这些问题 1.为什么一定要设一个主键? 2.你们主键是用自增还是UUID? 3.主键为什么不推荐有业务含义? 4.表示枚举的字段为什么不用enum类型? 5.货币字段用什么类型? 6.时间字段用什么类型? 7.为什么不直接存储图片.音频.视…
0.三大范式及反范式 ◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列.  ◆ 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键:二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分.  ◆ 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖.即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况.  第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在…
引言 近期由于复习了一下mysql的内容,有些心得.随手讲其中一部分知识,都是一些烟哥自己平时工作的总结以及经验.大家看完,其实能避开很多坑.而且很多问题,都是面试中实打实会问到的! 比如 OK,具体有下面这些问题 1.为什么一定要设一个主键? 2.你们主键是用自增还是UUID? 3.主键为什么不推荐有业务含义? 4.表示枚举的字段为什么不用enum类型? 5.货币字段用什么类型? 6.时间字段用什么类型? 7.为什么不直接存储图片.音频.视频等大容量内容? 8.字段为什么要定义为NOT NUL…
作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 综述 近期由于复习了一下MySQL的内容看到一篇比较好的文章,转载分享一下.大家看完,其实能避开很多坑.而且很多问题,都是面试中实打实会问到的! 具体有下面这些问题: 为什么一定要设一个主键? 你们主键是用自增还是UUID? 主键为什么不推荐有业务含义? 表示枚举的字段为什么不用enum类型? 货币字段用什么类型? 时间字段用什么类型? 为什么不直接存储图片.音频.视频等大容量内容? 字段为什么要定义为NOT NULL…
model表 记录网站模块:如视频,音频,调查,01发布内容时.可以指定发布到哪个模块下02可以统计每个模块的访问量设计表注意点01主键不要用id (全部使用 当前表名+id 如modelid)02name中文名,alias别名英文名(用作class名),排序字段sort<ul><?php foreach (table('model') as $k=>$v):?><li class="<?=$v['alias']?>" modelid=&…
前提: 最近测试环境shop表经常出现表损坏不能正常查询,通过mysql的修复方法,暂时有效.故做该表的迁移操作. 思路是: 停止数据库的操作 1.备份老表.  2.创建一个结构一样的表. 3.将老表数据导入到新表. 4.老表和新表名称互换. 1.备份老表 备份单表 mysqldump -u root -p 数据库名 表名 > 你要保存的sql文件(加位置) 备份多表 mysqldump -u root -p 数据库名 表1 表2 表3 > 你要保存的sql文件(加位置) 命令:例如 mysq…
整数类型,tinyint.smallint.mediumint.int.bigint 如果需要保存整数(不含小数),可以选择tinyint.smallint.mediumint.int.bigint,它们的范围如下图: 另外,一些小知识: 整形的计算是使用64位的bigint进行计算的 如果为整形指定长度,并不会限制其大小范围,只是影响显示,其存储与计算与其它长度的整形一致 实数类型,float.double 如果仅为了存储,不作精确的计算,可用float和double,它们的计算结果并不是精确…
前言: 最近设计了一套聊天功能,此功能支持人对人聊天.发送图片.查看聊天记录.按时间展示聊天列表.最后一条聊天数据及未读消息数 下面分享一下表结构及实现逻辑: 表结构: 1.聊天主表 id(主键id) user_id(用户id) another_id(对方用户id) 2.聊天列表表 id(自增id) chat_id (聊天主表id) user_id (用户id) another_id (对方用户id) is_online (是否在线) unread (未读数) status (是否删除) 3.聊…