0

我正在使用一个网络应用程序来评估工人。在一个 php 表单中,我添加了工人的姓名,并且有 10 个问题。每个问题都有选项(a、b、c、d)。例子:

  1. 工作质量。
    • a) 优秀的
    • b) 好
    • c) 不好
    • d) 太糟糕了
  2. 专业知识。
    • a) 优秀的知识
    • b) 没问题
    • c) 人的知识很少
    • d) 什么都不知道

我的问题是我无法正确建模 MYSQL 数据库。我计划制作一张用于提问的表格,一张用于回答的表格,一张用于工人区域的表格。但我做不到。请帮我为这个基地建模?我认为它们应该只是那些表:“tbl_worker”、“tbl_alternative”、“tbl_question”、“tbl_answer”。

模型

4

2 回答 2

0

如果这是我,我会使用以下表格和字段。

tbl_worker
    id
    name

tbl_questions
    id
    question

tbl_question_answer
    id
    question_id
    answer

tbl_report
    id
    worker_id 

tbl_worker_report
    id
    report_id
    question_answer_id

将所有问题放在问题表中,然后使用 Many(answers)ToOne(question) 关系将它们与答案连接在一起。

然后,您创建一个新的报告来设置工作人员 ID。然后遍历所有问题并将答案、report_id 保存到 tbl_worker_report 表中。

然后,您可以通过查找具有您要查看的报告的报告 ID 的所有行来获取所有报告来查看结果。并且因为您的回答还引用了该问题,如果需要,您也可以得到该问题。

于 2013-11-01T02:44:25.213 回答
0

想想你拥有的东西。你有一个“工人”,一个有“可能的答案”的“问题”,然后你可能有“工人回答的问题”(这将允许你对不同的工人有不同的问题,但不会强迫你)

Worker 将有一个主键 + 您收集的有关该 Worker 的数据。问题将有一个主键 + 您收集的关于该问题的哪些数据。可能的答案将有一个主键 + 问题的外键 + 您为问题的答案收集的数据 工人回答的问题将有一个主键 + 问题的外键 + 可能答案的外键 + 外键给工人+您需要收集的任何其他数据。

例子

Worker
+id : int
+name : string

Question
+id : int
+text : string

PossibleAnswer
+id : int
+question_id : int
+text : string

AnsweredQuestion
+id : int
+question_id : int
+possibleanswer_id : int
+worker_id : int
+time_answered : datetime
于 2013-11-01T02:45:22.737 回答