需求: 多选题,不定数量的多个选项 方案 1:每个选项一列,a,b,c,d,e,f,g 方案 2:一列,用 json 存多个选项 leader 说,json 不是面向对象的,取出来之后,还要进行处理。但是我感觉 json 比较适应业务需求变化 是否还有更好的方案?
![]() |
1
sadfQED2 217 天前 via Android
如果是最新版本的 MySQL ,可以考虑 json
如果是百年不变的 mysql5.7 ,那还是老老实实的多列吧 |
![]() |
2
Vegetable 217 天前
两张表呗,问题表和选项表,一对多。
|
3
x66 217 天前 ![]() 二进制,每一位表示一个选项,最后转换为 10 进制或者 16 进制来存储。
89(0x53) -> 1011001 -> acdg |
4
dcsuibian 217 天前
个人也觉得 json 不好,但使用得不少。主要是因为业务太多变了,每次都增减列的话相当麻烦。
|
![]() |
5
corningsun 217 天前
多列吧,扩展起来更方便。
比如:下面几个需求,你 json 改起来就麻烦了。 1 删除 c 选项 2 增加 y 选项 3 给选项自定义排序 |
6
psx2019 217 天前
这种需求直接抽取共性列转行(加一个选项表的附表)就行了
|
7
mejee 217 天前
json 一把梭就行了
|
![]() |
8
y051313 217 天前
类似的系统,我们是直接用的 json 存。
“取出来之后,还要进行处理。” 还要处理什么?答案吗? |
![]() |
9
wlkq 217 天前
要两列:key , value
横向扩展,变为竖向扩展。key 的值是多变的,存储什么都可以 |
![]() |
11
wonderfulcxm 217 天前 via iPhone ![]() 没有标准答案吧,得看需求,如果答案需要变来变去,一会 123 ,一会 ABC ,json 更好,比如如果要分析答案,比如哪个字数更多(奇怪的需求)那统计列比较方便。
|
12
kaedeair 217 天前
分两张表,一张问题表,一张选项表,选项关联到问题的外键
|