最近在负责一个平台,需要和不同系统进行对接,需要用到数据库的动态扩展字段。

现在比较流行的扩展字段方法,有大概如下把,①预留很多列进行扩展,②使用版本号的方式来进行扩展,③使用Key+Value的形式进行扩展。下面我讲讲我对这几种方法的看法。

可能很多人会问,你要增加一个字段,那不就直接在数据库里的对应表加就结了,哪有什么扩展的设计呀,哪天要加字段了就加呗,可以为空就为空,不可以给个默认值完事。确实是这么简单,添加一个字段如果是允许为可空类型确实是一点问题都没有。如果你添加一个字段需要不允许为空,然后又在1KW左右的数据量表里面添加的时候,就可能需要花费很长时间,当然这些操作都可以在夜深人静的时候加(加完之后,改一下代码这个也能做好)

(一)为可能需要扩展的表,预留一些字段

数据库预留一些字段,就是以防万一,防患于未然,等到需要的时候,就不需要在表中增加新的字段了,而且这么做的话,一个表里面的数据应该是存储在相邻的物理空间。其实这个问题是不是真的解决我们的需要呢,因为预留字段的特点是col1,col2这种命名,是不是很好维护了,等过了几年再来看这个是否合理呢。

上面这种就是属于“过度设计”,我们应该做的就是按需设计。

(二)使用版本号+通用列的方式来进行扩展

类似于这种0ÿ

mysql字段动态扩展_数据库动态扩展字段相关推荐

  1. mysql 字段名称规范_数据库表及字段命名规范

    数据库设计表及字段命名规范(我整理的,望大家多多提建议) 1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写 ...

  2. mysql字段排序语句_数据库字段排序的SQL语句

    简明现代魔法 -> 数据库技术 -> 数据库字段排序的SQL语句 数据库字段排序的SQL语句 2009-09-17 将字段依次写在order by 后面即可 , 中间用逗号隔开. sele ...

  3. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  4. mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...

    一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解:表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可 ...

  5. mysql explain详解_数据库mysql(1)——B+TREE索引原理

    一.B+Tree索引详解 1.什么是索引? 索引:加速查询的数据结构. 2.索引常见数据结构: #1.顺序查找: 最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕. #2.二叉树查找(bina ...

  6. mysql的考试范围_数据库考试范围整理

    填空: 1.目前常用的数据库管理系统软件有Access .SQL Sever和Oracle. 2.数据实际上就是存储在某一种媒体上的能够被识别的物理符号. 3.一个关系的逻辑结构就是一个二维表. 4. ...

  7. mysql打错了怎么办_数据库出错了怎么办?

    下面是网上收集的多种方法,大家可以测试下. (一) 昨晚浏览自己的Blog的时候,突然发现所有页面都无法显示,到后台查看的时候,发现一个"Table 'xxx' is marked as c ...

  8. mysql dbms是什么_数据库管理系统(DBMS)是用来做什么的?

    展开全部 数据库管理系统(database management system)是一种操纵和32313133353236313431303231363533e58685e5aeb93133326235 ...

  9. mysql按位存储_数据库中用一个值来保存多种情况:二进制和按位异或

    例如,某个房间可从[灯,床,桌,椅,杯子,饮水机--]这些器具中挑选,从而组成这个房间的装潢.我们可能会设计一个房间表,再设计一个器具表,再设计一个关系表,通过这个关系表来保存它们之间的对应关系.但是 ...

  10. mysql proxy集群_数据库集群中间件MySQL Proxy探讨

    数据库集群中间件 MySQL Proxy 探讨 杨芳萍 ; 马宏艳 ; 王斌 [期刊名称] <电子制作> [年 ( 卷 ), 期] 2013(000)019 [摘要] 互联网高速发展的同时 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task27.分发饼干
  2. (转)Python开发规范
  3. 10.27 sort
  4. 第三章——空间域处理方法
  5. Python中的*args和**kwargs的理解与用法
  6. SSS1700设计方案|SSS1700中文说明书
  7. Windows配置Rsync同步,安装cwRsync
  8. html颜色(背景,字体等)
  9. 计算机cims的英语全称是什么,计算机集成制造系统(CIMS),computer integrated manufacturing system,音标,读音,翻译,英文例句,英语词典...
  10. 关于QImageReader多次调用read失败的问题
  11. [组原]初识-地址总线,地址寄存器,存储单元,存储字长
  12. matlab中codegen是什么,从 MATLAB 代码生成 C/C++ 代码。 - MATLAB codegen - MathWorks 中国...
  13. cocos制作水滴粘连效果
  14. 安卓机顶盒刷linux系统下载,安卓机顶盒刷机 最简单的刷机教程【图文教程】
  15. Laya Stage
  16. RSA加密登录(公钥加密登录)---安全登录
  17. c语言主函数调用函数
  18. 传奇手游服务器搭建_传奇手游怎么搭建服务器
  19. 编写C# Windows服务,用于杀死Zsd.exe进程
  20. 为什么你的工作总是没能做好呢?

热门文章

  1. ubuntu 18.04.2的初步配置
  2. 格式化U盘并测试读写速度
  3. python xlsxwriter生成图片保存_Python xlsxwriter库 图表Demo
  4. 小程序API可以实现哪些功能
  5. 机器学习(8): 逻辑回归算法 小结及实验
  6. PyCharm破解版 mac
  7. GoogleChrome最新的代理设置流程
  8. uni-app:自定义vue模板
  9. 计算理论导引重点知识回顾
  10. 基于django的实验室网站管理平台设计与实现(二)