请教一个类似问卷网的数据库设计问题

数据库设计问题请教

打算做一个类似问卷网的工具,不同的用户可以创建不同的问卷,不同的问卷的表单多少类型都是不一致的,
例如用户A创建了问卷1,问卷有text文本框name有text文本框age 有text文本框tel 有select选择框A\B\C\E.
然后用户B又创建了问卷2,有text文本框name 然后有一个text文本框map 有radio选择sex 男1 女0;
那么这种情况如何设计数据库会比较合理?没有想到很好的方法…

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

用一个数据表的json 字段去存你的问卷内容 或者用一张一对多的关系表来存你的问卷内容

3年前 评论
kangfq (楼主) 3年前

问卷表,题目类型表(text,radio,select...)。题目表(可以每一题都存一条数据,也可以所有题目 json 后存到一条数据里面)

3年前 评论

试卷表 Table_A 问题表 Table_B 试卷问题关系表 Table_A_Table_B

如果需要展示一张卷子只需要

select * from Table_B as B join Table_A_Table_B   as ab on  ab.b_id = b.id where b.id = ?
3年前 评论

鄙人以为

对于预定义的表单类型,放在 json里即可。

对于数据的存储,分两方面

  • 可直接被搜索,一行记录对应一个表单类型
  • 非必要,放在json里即可
3年前 评论

问卷表(question):
user_id、type、title

问卷答案表(question_answer):
question_id、answer

用户提交答案表(answer):
user_id、question_id、question_answer_id、answer

3年前 评论
kangfq (楼主) 3年前

有一种思路,动态建表。。。a_1 表 a_2表

3年前 评论
kangfq (楼主) 3年前

直接 string 吧,业务上来了再考虑效率问题

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!