zoukankan      html  css  js  c++  java
  • mysql如何使用json便于开发

    对于每个新技术的出现,我们在学习的同时都需要思考,他的最佳实践是什么,在mysql的5.7版本中新增了对于json格式的支持,这篇博文就来讲一讲如何利用好这个特性来方便我们的开发服务。不接受抬杠,我知道支持json的有专门的数据库,但是很多现在还是单体开发使用的还是mysql,有时候这些小技能会让我们的开发变得高效和优雅。

    一、先说两个业务场景

    还是老惯例,以业务场景来驱动,数据库采用 mysql5.7X

    1.1 推送设置

    大多时候我们为了人性化,会在推送设置里面做很多的推送开关,方便用户关闭这个推送
    常规的建表:

    id int
    user_no int
    push_type int
    push_value int

    这样设计肯定是没有问题的,但是对于前端操排序,以及数据都有冗余,所以可以采用下面的办法:

    user_no int
    push_setting json

    image.png

    1.2、sql语句的构建:

    1.2.1 查询

    • 查询整个的设置,这个就是普通的查询就不多提了
    • 查询单个的设置,有时候需要这个操作,这个主要是针对json的某一个key的操作,这里是借助字符串的拼串和 $ 来操作的
    这里的 settingType  是开关配置常量的内容
    settingType = "'$." + settingType + "'";
    
    <select id="getUserGeTuiIdsByFocusId" resultType="java.lang.String">
    	select user_push_setting.push_setting->${pushType} from user_push_setting where user_no = #{userNo};
    </select>
    

    1.2.2 、更新操作:

    • 具体的更新某一个值
    settingType = "'$." + settingType + "'";
    
     <update id="updatePushSetting">
           update user_push_setting set push_setting =
           json_set(push_setting,${settingType},#{settingValue}) where user_no = #{userNo}
     </update>
    

    上面的有可能你还觉没太有必要这样操作,那么接下来这个应用场景就有很大的必要要使用这个特性了

    二、构建操作日志:

    这里或许有人说,现在有很多的的日志构建系统,elk呀什么的,还是说明一下这里只针对单体,针对部分简单应用,

    具体的场景描述:

    用户的交易日志,这些交易分很多中,平仓、开仓、清算,这些日志都得记录,但是具体的详情内容不同,保证金的变动、盈亏、手续费、递延费等每种类型的操作所记录的详情都不一致,这个时候使用json数据格式不是正好的吗,这个地方我们是有用户账户表动记录等的,这个地方的日志是方便为了快速的排查用户数据所做的。

    与此相关的还有很多的日志的详情,我们都可以借助这个来完成。目前就介绍到这里吧,具体的需要对于json操作的,可以查阅mysql的函数手册 https://dev.mysql.com/doc/refman/5.7/en/json-functions.html

    博客首发地址csdn:https://blog.csdn.net/weixin_42849915
    简书地址:https://www.jianshu.com/u/4b48be4cf59f
    希望结识更多的乐于分享的伙伴一起前行

  • 相关阅读:
    【瞎搞】 HDU 3101 The Heart of the Country
    使用EXCEL设置“下拉菜单”选项功能
    IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
    Linux的文件权限
    刘德华夏日Fiesta演唱会上那个表演探戈舞的演员是谁啊?_百度知道
    每周日与周四《红酒屋》探戈舞会"Wine Bar" Milonga_原生态拉丁_新浪博客
    精华区文章阅读
    探戈
    探戈
    TangoWalk小组课程与优惠(20131208更新) | TangoWalk 学跳阿根廷探戈舞
  • 原文地址:https://www.cnblogs.com/fkxuexi/p/10674040.html
Copyright © 2011-2022 走看看