-- 创建示例表
DROP TABLE IF EXISTS `t_base_user`;
CREATE TABLE `t_base_user`  (
  `USER_ID` char(36) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `IDENTITY_ID` int(11) DEFAULT NULL,
  `PERSON_ID` int(11) DEFAULT NULL,
  `USER_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `BUREAU_ID` int(11) DEFAULT NULL,
  `DEPARTMENT_ID` int(11) DEFAULT NULL,
  `CREATE_TIME` datetime(0) DEFAULT NULL,
  `B_USE` int(255) DEFAULT NULL,
    `DYNAMIC_COLS`  blob,
  PRIMARY KEY (`USER_ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Compact;

SET FOREIGN_KEY_CHECKS = 1;

INSERT INTO T_BASE_USER(USER_ID,IDENTITY_ID,PERSON_ID,USER_NAME,BUREAU_ID,DEPARTMENT_ID,CREATE_TIME,B_USE,DYNAMIC_COLS)
VALUES('75B2E977-A00D-440D-BA60-0F47361CE55D',5,1,'黄海',20,21,now(),1,COLUMN_CREATE('XB_NAME', '男', 'MZ', '汉族'));

INSERT INTO T_BASE_USER(USER_ID,IDENTITY_ID,PERSON_ID,USER_NAME,BUREAU_ID,DEPARTMENT_ID,CREATE_TIME,B_USE,DYNAMIC_COLS)
VALUES('61A110A9-3E36-430C-AF9F-D23A74649044',5,1,'朱八',20,21,now(),1,COLUMN_CREATE('XB_NAME', '女', 'MZ', '回族'));

-- 查询
SELECT USER_ID,IDENTITY_ID,PERSON_ID,USER_NAME,BUREAU_ID,DEPARTMENT_ID,CREATE_TIME,B_USE, COLUMN_GET(dynamic_cols, 'XB_NAME' AS CHAR) AS XB_NAME FROM t_base_user where
COLUMN_GET(dynamic_cols, 'XB_NAME' AS CHAR)='男'

-- 使用场景说明:
以基础数据为例,我们对于人员有四张表:t_base_person(教工表),t_base_student(学生表),t_base_parent(家长表),t_sys_loginperson(登录表), 其实都是人员的基本表格,但因为属性有差异,导致派生出了四张表,
而差异却不是查询的最关键信息,也就是速度不是第一位的。目前这四张表的问题也很多,比如互相之间的数据不对应(这可以通过外键等方式进行限制,但外键的问题也很多),比如开发了大量的无用接口。我们可以考虑使用json功能,通过一个基类表t_base_user完成所有设计,这样设计极简,以后的问题也会最少。但在Mariadb中的json,不像是mongodb中的json那样灵活,还是做为定位列扩展比较合适。

Mariadb 10.2中的json使用及应用场景思考的更多相关文章

  1. mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法

    mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源 ...

  2. Delphi 10.3中使用JSON

    有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了. 注意:   1,JSON类创建后,里面 ...

  3. Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  4. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  5. 如何正确的使用json?如何在.Net中使用json?

    什么是json json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式. 为什么要使用json 在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但 ...

  6. PHP中生成json信息的方法

    <?php //php中生成json信息 //json_encode(数组/对象) $color = array('red','blue','green'); //[索引数组] echo jso ...

  7. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  8. 【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化

    谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询 ...

  9. Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...

随机推荐

  1. WebDriver的定位元素方法

    如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.na ...

  2. 我的emacs简易配置

    ;;------------语言环境字符集设置(utf-8)------------- (set-language-environment 'Chinese-GB) (set-keyboard-cod ...

  3. springMVC和mybatis的原理

    mybatis是什么? mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架,mybatis提供输入和输出的映射,需要程序员自己写sql语句,my ...

  4. gflag使用

    #include <gflags/gflags.h> #include <iostream> // 声明全局flag DEFINE_bool(my_bool, false, & ...

  5. STL源码分析-rotate

    http://note.youdao.com/noteshare?id=4ba8ff81aa96373ba11f1b82597ec73a

  6. 几何+思维 Samara University ACM ICPC 2016-2017 Quarterfinal Qualification Contest K. Revenge of the Dragon

    题目链接:http://codeforces.com/gym/101149/problem/K 题目大意: 给你两个点a,b.一个人在a点,一个人在b点,b点的人要追杀a的点,他的跑步速度是a的两倍. ...

  7. 给APP增加RSA签名

    RSA签名,Google主要用于APP的来源控制与结算.所谓的结算,也是就是控制了APP只有使用现在机子上登录的Google账户从Google市场曾经下载过该APP的才能够使用,这样也就达到了app销 ...

  8. 从零搭建SSM框架(四)手动实现Tomcat部署

    发布War包 Windows环境部署 增加如下配置 <Context path="/" docBase="cnki" debug="0" ...

  9. LintCode 394: First Will Win

    LintCode 394: First Will Win 题目描述 有n个硬币排成一条线.两个参赛者轮流从右边依次拿走1或2个硬币,直到没有硬币为止.拿到最后一枚硬币的人获胜. 请判定 第一个玩家 是 ...

  10. 去掉input获取focus时的边框

    贴图,问题如下: 尽管已经设置输入框的border为none,当输入框focus时扔会出现浏览器自带的边框 解决方法,添加如下样式即可,.fs_input为输入框样式 ---------------- ...