如何保存用户对开放式问题的调查回答?

时间:2019-08-06 16:02:59

标签: mysql database rest

我正在设计一个MySQL数据库,用于存储配置文件和用户对这些配置文件中的问题的回答。创建json对象需要数据库中的数据。我们正在开发REST API。

用户填写数据(nameemailpositiontel ...),从而收到user.id。然后回答调查问题。结果,用户响应存储在answer表中。

可以在options表中预先准备用户的答复(封闭式问题)。或者也许没有准备好(开放式问题)。因此,除了表answer_options(包含用户选择的答案(多对多))之外,表answer还包含以下字段:

  • text(以文本形式回答问题)
  • num(以数字形式回答问题)
  • yn(作为布尔类型的问题的答案)。

input_types包含html元素的类型(例如,<input type = "text" />。 表insert_types包含表answer中的字段名称(yntextnumoptions)。 API将问题作为JSON对象返回:

{
  "id": 1,
  "label": "Annual turnover of the company?",
  "placeholder": "Enter a number",
  "required": true,
  "input_type": {
    "name": "text"
  },
  "insert_type": {
    "name": "num"
  }
}

前端insert_type会发送一个依赖它的JSON对象来回答问题:

{
    "user": 1,
    "question": 1,
    "num": 100
}

API接收对象并将其保存在answer表中(num属性保存在answer.num中)

我不喜欢前端必须关心insert_type的事实。保存用户调查对开放式问题的回答的习惯是什么? MYSQL DB model

1 个答案:

答案 0 :(得分:0)

我以前有一个类似的项目。我所做的就是将用户的开放式答案也添加到选项表中,并对所有答案使用answer_options表。

对于前端,它始终可以发送答案值而无需指定插入类型。后端可以找到封闭式问题的option_id,或者插入开放式问题的答案并获得option_id。仅供参考。