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