传统sql查询痛点及衍生的项目设计思路(设计一款可视化查询工具)

背景

最近三年,工作中很大一部分时间是写sql报表。业务很复杂,几十个表。常用的就有十几个。经常表连接达七八个。写得多了,我也很熟练了,但就是足够熟练了,我就越感觉有以下问题困扰我:

  1. 无法串联excel表进行关联查询,只能导入成临时表来查,这种方法其实是不可取的
  2. 跨库查询麻烦
  3. sql语句写起来麻烦,特别是不熟练的人,比如写时间,老是要写格式化语句(主要是针对新手,老手不怕这个)
  4. 多表关联语句写的很复杂,难以理解和复用
  5. 难以进行模块切分,方便复用
  6. 没有编程的灵活性,比如使用查询出来的数据作为入参进行下一步查询,或者进行字符串分割,拼接等更灵活的操作。
  7. 历史语句不利于保存和检索。保存的sql语句隔一段时间自己打开来看,也看不明白,因为sql语句结构不清晰,不明了。表连接很复杂
  8. 子查询不是那么的灵活,只能在一个层级里进行,多一层就无法进行子查询了

期望达到的效果

  1. 更灵活的查询方式,sql结合编程,尽可能用子查询替代表连接(也保留表连接的查询能力,就需要手写sql语句),结构清晰明了,方便代码的维护
  2. 可视化界面,大部分情况下不需要写sql语句,界面操作即可,只需要聚焦业务,降低sql查询门槛,没基础的人更容易学会查询数据
  3. 可以有明确的目录结构的保存写的sql语句,方便检索和复用
  4. 可以生成报表
  5. 跨平台,安装简单
  6. 最好还能结合数据大屏实现数据直观展示

可能遇到的困难

  1. 如何适配多种数据库?不知道好不好做
  2. 数据库账号密码的管理,安全问题
  3. 数据量大时的性能和效率问题
  4. 保存写的语句表结构设计,目前还没考虑清楚
  5. 数据库通常私密,存在内网。需要在不联网时使用,如果要考虑变现,如何实现授权?
  6. 一个优雅简洁好用的交互界面也很难设计
  7. 如何经营和商业变现?

设计思路(逐步补充)

程序定位
  1. 只做查询功能,不包含删改。因为该程序的一个重要的用户群体是非DBA人员。他们没有扎实的基础和思维,删改危害很大。
  2. 当然也适用于DBA人员,因为需求就是基于我自身写sql总结的困难。这个程序也应当比直接写sql效率高
  3. 该程序不是为了替代navicat之类的数据库可视化管理软件,毕竟仅仅只有查询功能。只是补强他们的查询能力。对于DBA人员,二者都需要。非DBA人员只需要该程序
程序架构

由于我后端主要写golang,前端写vue3,我也查了下go有没有其余好用的UI编程框架,热度最高的fyne就是依托答辩。其余热门的本质上也都是web加后端的模式,像wails又只支持Win10及以上。win7的用户量还是很大的。不能放弃。

所以根据我的技术栈,以及兼容性和跨平台的考虑,还是采用BS架构最合适。

具体方案
  1. golang做后端,负责逻辑处理,数据库查询操作,IO,静态资源代理等操作。
  2. vue3编写web界面。由go进行代理。
  3. 数据库保存用户数据。关系数据库搞得定,就采用mysql,搞不定就换nosql。具体还得等表结构设计明白再定

商业变现

这个我不擅长,总体两种方案:

开源模式

劣势
  1. 对技术能力的要求会比较高,毕竟开源了人家是要看你的代码。
  2. 如何防盗。就算我的开源协议选得严格点,不允许私自二开。但是架不住很多人和公司不讲武德,我也不可能有精力维权。
  3. 开源了如何经营变现?授权模式?
优势
  1. 利于宣传和推广
  2. 产品肯定更健壮
  3. 可以有其余程序员参与进来,减轻我的压力
  4. 安全性更被用户信任,毕竟代码经得起考验,数据库账号密码这么重要的东西是吧

不开源模式

也就是开源模式的优势劣势对调了。

个人倾向

  1. 我偏向于开源模式,因为我觉得我最大的困难的宣传和推广,没流量,程序再好用也是孤芳自赏,没有意义。如果能有人用,在考虑流量变现啥的也不迟。
  2. 也希望趁机磨练下自己的技术能力、架构设计能力和项目管理能力。毕竟没有亲自独立完成过大型项目。
  3. 希望全程公开写代码。然后可以开个直播,不在于赚钱,而是持续不断地曝光这个产品。从构思设计就开始,所以我才直接在博客上写这个专栏。

软件经营模式

提供两种版本:联网版和单机版

联网版
  1. 需要登录才能使用
  2. 免费版:功能全部免费使用(也许除了数据大屏展示功能,具体进一步构思)。但是不提供云端保存编程结果的功能,只能保存在本地。
  3. 收费版:在免费的基础上,提供云端存储功能。具体收费模式待定
  4. 一律不提供保存数据库密码的功能
  5. 包升级
单机版
  1. 功能全齐
  2. 适用于内网,没有免费版
  3. 收费模式按年,不包升级
  4. 绑定主机,一个授权码只能用于一台主机
  5. 单机版提供保存账号密码功能

目前只想到这么多,慢慢补充完善。另外, 业界有类似的软件和网站吗?没找到呀。欢迎指点,有好的思路想法,也期望不吝赐教!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lsjweiyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值