如何在数据库中保留很长的问题和答案?

Mod*_*lar 6 database-design

我正在计划我的数据库设计为 3 类不同的客户(目前至少 3 个)提供 3 组多个问题,每组包含大约。100 个问题,等待他们的答案被保存在数据库中。

这些问题都在必填的问卷中,这对我的工作来说是非常重要的材料,然后将它们全部作为电子邮件发送给我自己是不可替代的。我不是这个领域的专家。我不确定存储、检索和管理它们的最佳方法是什么。

请查看我的数据库设计和建议以获得更好的方法。

表格:问题

  • 设置名称
  • 第一季度
  • Q2
  • Q3
  • ...

表:问卷

  • 顾客ID
  • 设置名称
  • A1
  • A2
  • A3
  • ...

我有3个主要问题:

  1. 如何根据客户资料在PHP页面上显示每组问答?
  2. 问题需要显示在网页上,如果是手动,文本显示,如果我决定移除、编辑或删除一些问题,这对我来说将是一项耗时的工作。你会推荐什么方式?
  3. QUESTIONS 表中的所有问题(Q1、Q2 和...)都需要与 QUESTIONNAIRE 表中的答案(A1、A2 和...)完全映射,有没有更好的方法?

a1e*_*x07 3

假设问题只有一个正确答案,并且每组测试的可能答案不必不同,您可以执行以下操作(这是一个粗略的想法,我可能会在(或过度)设计一些概念):

问题:id,question_text, Correct_answer_id(FK到answer.id)
答案:id,answer_text
Question_possible_answer(question_id(FK到问题),answer_id(FK到anwer))
测试:id,test_name
测试问题:id,test_id(FK到测试) , Question (FK to Question)
QUESTIONNAIRE (id, customer_id, test_id, Questionnaire_date) -- 我假设客户可能多次通过测试,因此 (customer_id, test_id) 上没有唯一键,而是 (customer_id, test_id, Questionnaire_date)
QUESTIONNAIRE_Answer (questionnaire_id (FK 到 QUESTIONNAIRE), test_question_id(FK 到 Test_question),answer_id(FK 到 Answer))

现在,对于每个问题,您在 Question_possible_answer 表中添加一些可能的答案,然后创建一个新测试并使用问题填充 Test_question 表。您通过链接测试和客户来创建一个新的问卷,该客户的所有答案都将转到 QUESTIONNAIRE_Answer 表。