在线答题小程序,数据库设计解析
发布于 5 年前 作者 kongjuan 4562 次浏览 来自 分享

今天不会 讲整个数据库的设计,今天只讲一个表结构,那就是核心表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

回到顶部