在线答题小程序,数据库设计解析
今天不会 讲整个数据库的设计,今天只讲一个表结构,那就是核心表Question
我做答题小程序这么久了,一直没有想到有一天我竟然会整理这个,之所以今天整理这个是因为,真的十分有必要
别问为什么,因为我经历的太多,接触的太多,各种基础的,事情起因说来话长,那就一笔带过了
总之写给需要的朋友。
今天那我就掰扯掰扯在线答题小程序的Question表结构设计,具体设计如下图所示
{
"_id": "20200419001",
"media": "text",
"mediatype": "1",
"title": "每个微信用户可以收藏多少个小程序?",
"typecode": "1",
"typename": "单选",
"comments": "注释信息",
"answer": "A",
"options": [
{
"value": "1",
"code": "A",
"content": "50个"
},
{
"value": "0",
"code": "B",
"content": "100个"
},
{
"value": "0",
"code": "C",
"content": "200个"
},
{
"value": "0",
"code": "D",
"content": "500个"
}
]
}
截图如下所示,
在该设计中,选项被封装在一个字段options中,在普通mysql数据库里面,由于不能直接存放数组或者对象这种复杂的数据结构,这里要序列化(将数组转化为JSON字符串),前端解析的时候再反序列化为数组
而对于小程序云开发而言,这种设计就完全可以支持,options字段用数组的形式,每个数组是一个选项的对象。
细心的朋友,可能发现,在options的每一项里面还有一个字段value,这个字段代表了,当前选项是否是答案
上面的数据库设计可以支持单选、多选、判断三种题型。
3
4
5