让用户自己前台写SQL语句?!!!v2.0

相信看到标题你有些怀疑,对于数据库的操作,怎么能让用户自己去写SQL语句呢?如果你工作时间久了,也会产生一些奇奇怪怪的想法,这里我只解释让用户自己前台写SQL语句!!!我可以很肯定的告诉你,没问题!!! 在传统的思路中,你如果是一个新手,你会想到的是什么?select * from 表 where 条件1,条件2,条件3;或者再整一些高大上的想法,拼接JSON,类型与阿里云,腾讯云的配置功能,直接定义JSON模板,按照模板修改就行了,但是这些你有没有考虑过,如果用户这个功能只用一次,或许一点问题都没有,他可以看不懂代码,但是照着API上面的做就可以了,但是如果一个公司很频繁的操作,却能恨透你这个开发,话说一个程序猿百分之八十的时间都在考虑用户会干出什么"蠢事",如果这些你都考虑不到,我推荐你读一下程序猿的职业素养,坚决不做代码的奴隶,我只会带你玩代码,不会带你敲代码。

说了这么多废话,是为了引导你进入一个充满想法的世界,下面开始我自己最新研究出来的逻辑链,小软件不推荐使用,外包软件不推荐使用,因为他们不能把这个想法完美体现出来

这里先记住两个字:“灵活”,符合原子理论,兼容一切操作

步骤详情:

  1. 你需要数据库里面建立一个模板表,这里表名DB_Table_t(id,name,displayName)
  2. 建立用户自定义SQL存储表,表名SQL_Template_t
  3. 对DB_Table_t建立模板,把所有需要操作的表名放到表中,起别名,例如:{id: 1, name: “user”, displayName: “用户”}
  4. 前端增加查询配置接口,或者查询页面(备注:查询页面需要给用户显示displayName,让用户自己选择表,增加select;update;选择框,为啥不写delete自己想想吧,哈哈)
  5. 举例子说明:用户进入页面,点击下拉框,选择select 再选择表关联的标签,再选择想要获取的表标签中的字段标签,再选择条件语句中的标签,点击查询,后台直接把SQL语句传输到数据库,这里需要做限制,比如只能指定IP访问,访问限流,权限控制等等,避免数据库的不正当操作导致的数据丢失
  6. 这样一条完全由用户支配的SQL就可以了,用户可以通过点击存本次操作,把操作存到存储表中进行维护
  7. 还有一些复杂的查询,多张表关联查询也是同理,只要你理清楚哪些表可操作,关系,结构,这些都不是问题

转眼这篇文章已经发表了多年,里面包含了很多不成熟的想法,很多的同学加我的联系方式询问,我最终也没有发表一个准确的解决方案,为此感到抱歉,其实在很多的项目中,这一方案已经实现,首先是数据库的设计,将数据库拆分成每一个单元块,由用户自主发送请求,将每个小单元,存到数据库中或者其他的介质中,并且对这些数据赋予一定的标签,方便我们后期维护。

我们可以将这一块假象成一个放置SQL的空间,用户每次需要的时候,他就可以通过一些自己定义的标签来拿这些SQL,然后由我们后台来对用户拿到的数据进行组合排列,或者由用户前台配置,最终组合成一个完成的SQL,然后再次执行,用户可以选择修改标签,那我们就将修改类的标签交给用户,然后我们会询问用户需要修改什么,我们将修改的单元发送给用户以供选择,然后我们再问用户修改的条件,我们都需要修改哪些,然后我们将条件组合单元的信息让用户选择,然后用户点击某些条件,组成一条完整的SQL,然后发送到后台,至于当时的IO吞吐量大,执行慢等情况也在当前技术迭代的社会里得到了解决,数据库读写分离,redis等非关系型数据库做缓冲,微服务等方式都可以很完美的解决。

希望对你有所帮助。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值