mysql 预留一个自定义字段_mysql-预留字段
数据库设计误区:备用字段 / 保留字段 / 预留字段
【现象描述】
在数据表中,不仅设计了当前所需要的字段,而且还在其中留出几个字段作为备用。
【原因分析】
这似乎可以叫做防患于未然,等到需要的时候,就不需在表中增加新的字段了
而且这样做的话,一个表的数据应该会被存储在相邻的物理空间中,这对于性能也是有好处的。
另外的原因就是,在古老的数据库中,如果改变数据库的定义(包括增加字段、改变字段的类型、删除字段等等),那么其中原来的数据就会丢失,所以这项工作非常麻烦,我们需要先建立临时表,将数据备份出来,然后创建新表,将数据导入其中,最后再删除原来的表。
【问题所在】
这样的做法对于项目会导致很多问题,而且原先想要解决的问题并不一定能够解决:
问题一:增加大量备用字段,必定会浪费很多空间,尽管其中可能都没有具体的数据,但是仅仅是空字段也会占据一定的空间的。
问题二:由于命名的特点,备用字段无法在字段名上体现其意义,不规范,后期维护麻烦。如果没有完善的文档管理流程,用不了多久(可能也就是两三年),就没有人能够说清楚到底哪个字段代表的是什么意义了。
问题三:增加了这些备用字段就真的会够用吗?不一定,因为我们只是每个类型的字段留出几个备用,如果数量超过,或者要使用特殊的、不常用的类型的时候,还是需要增加新的字段。而且如果没有完善的管理,谁又能说清楚倒底哪个字段已经被使用,哪个字段还可以使用呢?到时候还不是要增加新的字段。
【解决方案】
其实上面的这种设计方式就是一种“过度设计”,我们应该做的就是“按需设计”,在经过详细有效的分析之后,在数据表中只放置必要的字段,而不要留出大量的备用字段。
当需要增加相关的信息的时候,就要具体情况具体分析:
1. 如果数量很少,而且信息的性质与原表密切相关,那么就可以直接在原表上增加字段,并将相关的数据更新进去;
2. 如果数量较大,或者并非是原表对象至关重要的属性,那么就可以新增一个表,然后通过键值连接起来;
3. 对于表的数据的存储位置所导致的性能问题,我们可以通过在特定时间对数据库的数据进行重组来解决,而这项工作对于长期运行的数据库来说,也是需要定期进行的。
https://blog.csdn.net/iw1210/article/details/44752771
mysql 预留一个自定义字段_mysql-预留字段相关推荐
- django mysql 名称_Django 自定义表名和字段名
通过db_table和db_column自定义数据表名和字段名 假如你的数据库里已经有了一张数据表,且该表包含多个字段,你希望通过Django直接访问该数据表的各个字段而不是重新建立新表,你这时可以通 ...
- mysql判断域为空_MySQL EXPLAIN 字段说明
id 查询或关联查询的顺序. 如果没有子查询且只有一个查询,则为一个常数 1,表示第一步: 如果有子查询,则子查询为 1,父查询为 2: 相同的 id 查询顺序为自上而下: 如果有子查询,不同 id ...
- mysql判断字段是否存在不存在添加字段_mysql 新增字段时判断字段是否存在
1.问题引出 为了保证数据的正确性,代码的健壮性,我们必须对一些边界条件做一个判断,所以才会把修改表结构搞得如此复杂. mysql 新增字段时判断字段是否存在,本来是一个很小的问题,因为以前都是使用 ...
- mysql数据库怎样添加字段_MySQL添加字段和修改字段的方法
MySQL添加字段的方法并不复杂,下面将为您详细介绍MySQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助. 1.登录数据库 >mysql -u root - ...
- mysql表设计 列命名_MYSQL数据库字段命名及设计规范
1.设计原则 1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能.扩展性和数据完整性方面达到了最好平衡 ...
- mysql 中 一个汉字吗_MySQL 中一个汉字占多少存储?
MySQL 中一个汉字占多少存储? 1. 一个汉字占多少长度与编码有关: UTF8: 一个汉字 = 3 个字节 GBK: 一个汉字 = 2 个字节 2.varchar(n)能存储几个汉字? varch ...
- mysql 预留一个自定义字段_MySQL 按指定字段自定义列表排序 | DevOps
问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ...
- mysql按逗号拼接起来_MySQL ----- 计算字段(Trim,Concat,as)(九)
存储在数据库表中的数据一般不是应用程序所需要的格式: 一种是从数据库中检索出转换.计算或格式化过的数据 另一种是将检索出数据在客户机应用程序或报告程序中重新格式化 这里当然建议使用第一种,借助计算字段 ...
- mysql 唯一约束 多字段_mysql多字段唯一约束
MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值.唯一约束可以确保一列或者几列不出现重复值. 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指 ...
最新文章
- linux 查看库的安装信息
- ORACLE时间函数(SYSDATE)深入理解
- windows 常用工具
- html请求接口_通用网关接口-FastCGI介绍
- 【渝粤教育】国家开放大学2019年春季 2712园艺基础 参考试题
- 电脑一族,打电脑时候的健康的坐姿
- 计算机软件乘除,基于单片机的智能计算机程序 可以实现加减乘除运算
- Leetcode每日一题:203.remove-linked-list-elements(移除链表元素)
- BZOJ 4094 USACO 2013 Dec. Optimal Milking
- c语言有趣的编程代码,一个有趣的小程序
- linux后台进程管理工具supervisor
- 2005-2020POI数据 高德POI数据 高德信息点数据 百度POI数据分析下载
- Android Studio中AndroidManifest.xml文件中application标签
- 计算机中的逻辑与或非,与或非运算(与或非逻辑运算口诀)
- R/ggplot2保存图片中文字体至PDF——showtext包一文清除所有障碍
- 冰点文库的替代品【Wenku Doc Downloader】用于下载各种文库的材料
- Mac下adb调试华为C8815问题
- Jodd-Java的瑞士军刀 demo
- 【Android 电量优化】电量优化 ( 唤醒锁定 | 使用 WeakLock 保持服务唤醒 | 屏幕唤醒 )
- RapidScada免费开源Scada组态软件系列教程4-各模块详细介绍