你们会在数据库字段里存 json 字符串吗

2025 年 4 月 9 日
 zx9481

当前项目中存在一个包含 7-8 个级联下拉框的查询模块,其中多数控件具有 3-4 级嵌套关系。考虑将所有枚举数据通过 AI 预处理生成结构化 JSON ,采用单字段存储方案,配合 Redis 持久化缓存,最终直接向前端输出完整数据结构。

大佬们,这种设计是否具备可行性?这种"全家桶"式的处理方式会不会有什么坑?

4865 次点击
所在节点    数据库
31 条回复
LASockpuppet
2025 年 4 月 9 日
级联的一般会扁平化吧
jqtmviyu
2025 年 4 月 9 日
见过表单转 json 存 mysql, 然后用在回填上的. 仔细想想, 也没什么其他方法呀.
KKKKKKKKKKKKKKKK
2025 年 4 月 10 日
pgsql 没问题,把需要查询的字段拿出来就好了
lyxxxh2
2025 年 4 月 10 日
以前存,后面统计/修改 火葬场,后悔死我了。
spritecn
2025 年 4 月 10 日
不稳定不索引的和主业务关系不大的数据会存,并且字段名大概率叫 extJson
tenserG
2025 年 4 月 10 日
存了 但是数据量不大
spritecn
2025 年 4 月 10 日
@lyxxxh2 哈哈哈,只有一个模块这么干过,主数据一个 json,附加数据一个 json,跑倒时没有问题,统计数据那叫一个痛苦,虽然 mysql5.7+的 json 查询还算是比较成熟的,但每次查询都需要复习一下 mysql 的 json 箭头语法
Hudiebbk
2025 年 4 月 10 日
这个要看查询的需求,如果查询需求简单没有过多嵌套,当然可以搞,我现在设计很多字段直接 json 存储,而且 mysql8 对 json 支持也还可以,可以建索引如有必要
volvo007
2025 年 4 月 11 日
我用 pg ,丝滑~
PatchouliTC
2025 年 4 月 11 日
原则上可以,毕竟业务上经常遇到这类单独拉字段用不上/单独拉表关系没用的数据,但是指不定以后业务升级会用到的一堆玩意,基本就是归档一个 json 然后找个字段塞进去美其名曰 snapshotData,只要你确定你没有后端复杂查询过滤部分会涉及到 js 内层级结构就随便搞[如果业务逻辑要求是先获取单条记录再对 js 内数据判断也可以这么玩]
zjstar
2025 年 6 月 12 日
还是看业务,我们这边一般这种,查远远高于改,那么就是可以吧 json 存一个字段的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1124252

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX