博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mariadb 10.2中的json使用及应用场景思考
阅读量:6215 次
发布时间:2019-06-21

本文共 1624 字,大约阅读时间需要 5 分钟。

-- 创建示例表

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那样灵活,还是做为定位列扩展比较合适。

转载地址:http://tosja.baihongyu.com/

你可能感兴趣的文章
(笔试题)程序运行时间
查看>>
jQuery Ajax 操作函数及deferred对象
查看>>
串口编程(基于tiny4412)
查看>>
Spring面试题一
查看>>
SQL Server Profiler工具
查看>>
机器学习是什么--周志华
查看>>
猜你喜欢-----推荐系统原理介绍
查看>>
一个适用于层级目录结构的makefile模版
查看>>
【leetcode】Candy(python)
查看>>
循环调用修正sic86
查看>>
unity3d 血液
查看>>
学习英语每日一 On the house. 赠品
查看>>
用户终端配置方法
查看>>
二维码的生成细节和原理
查看>>
创建 Web 前端开发环境
查看>>
[转]NopCommerce MVC 插件机制分析
查看>>
【转】linux 中fork()函数详解
查看>>
Qt 4.8.5 jsoncpp lib
查看>>
【转】质量管理的思考
查看>>
BZOJ1077 : [SCOI2008]天平
查看>>