-- 创建示例表
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. Linux系统启动详解(一)

    本篇主要以Centos为例,讲述整个Linux系统启动过程,包括了grub引导,initramfs流程,/sbin/init执行rc.sysinit及rc的大体流程. 另外,本篇有一个实例来说明,将整 ...

  2. 常用Transformation算子

    map 产生的键值对是tupple,      split分隔出来的是数组 一.常用Transformation算子 (map  .flatMap .filter .groupByKey .reduc ...

  3. mysql数据库----下载安装、操作

    一.mysql概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL ...

  4. input 拍照上传

    <input id="up2" type="file" accept="image/*" capture="camera&q ...

  5. Java Socket TCP编程(Server端多线程处理)

    package com; import java.io.*; import java.net.Socket; /** * Socket Client * <p> * Created by ...

  6. Linux系统之路——如何在CentOS7.2安装MySQL

    一.Mysql 各个版本区别:1.MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.2.MySQL Enterprise Edition 企业版本,需付费,可以试 ...

  7. STL源码分析-bitset

    http://note.youdao.com/noteshare?id=0ea12c1fffd3866c6eddb8dc208c109d

  8. 「Django」rest_framework学习系列-用户认证

    用户认证:1.项目下utils文件写auth.py文件 from rest_framework import exceptions from api import models from rest_f ...

  9. PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件

    PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件 简介: 在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用, ...

  10. Asp.Net MVC 自定义登录过滤器

    1.新建类BaseController用于统一所有控制器继承扩展,方便扩展登录等过滤器.示例如下: using CloudWave.JustBeHere.JBH_H5.Controllers.Attr ...