情景:答卷系统的问题库需要支持查看单个问题的编辑历史,所以我想到添加版本号的方式存储
在表结构设计的时候,想过两种方式
[ 1 ] 一个 问题表 + 选项表,问题表和选项表通过一个 groupId + versionId 关联 类似这样的:
问题表:
groupId,versionId,questionName,status,type.....
选项表: groupId,versionId,optionValue,sort.....
这样的话,问题编辑后,原有记录不变,在问题表和选项表中再插入一份 1 对多的数据,保持他们的 groupId 一致,versionId 增加 1
[ 2 ] 只有一个 问题表 上面选项表的内容作为一个字段存储,把 n 个选项转成 json 存储,然后读取的时候,解析出来问题表 groupId,versionId,questionName,status,type,optionJsonValue .....
这样的话,问题编辑后,原有记录不变,在问题表和选项表中再插入一条数据即可,依旧保持 groupId 一致, versionId 增加 1
这两种方式那种比较好呢?
还有没有比较合适的方式?请教各位大佬