我正在使用网络应用来评估员工。在php表单中,我添加了worker的名称,有10个问题。每个问题都有选项(a,b,c,d)。 例如:
我的问题是我无法正确建模MYSQL数据库。我计划制作一个问题表,一个用于答案,另一个用于工作区域。但我不能这样做。 请帮我模一下这个基地? 我认为他们应该只是那些表:“tbl_worker”,“tbl_alternative”,“tbl_question”,“tbl_answer”。
答案 0 :(得分: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
将所有问题都放在问题表中,然后使用多个(答案)ToOne(问题)关系将答案与答案结合起来。
然后创建一个设置工作人员ID的新报告。然后遍历所有问题并将answer,id和report_id保存到tbl_worker_report表中。
然后,您可以通过查找具有您要查看的报告的报告ID的所有行来获取所有报告,从而查看结果。并且因为你的答案也引用了你可以在需要的时候得到的问题。
答案 1 :(得分:0)
想想你拥有的东西。你有一个“工人”,一个“问题”有“可能的答案”,然后你可能有“问题一个工人回答”(这将允许你对不同的工人有不同的问题但不强迫你)
工人会有一个主键+你收集的关于工人的数据。 问题将有一个主键+您收集的有关该问题的数据。 可能的答案将有一个主键+一个外键问题+你收集什么数据的问题的答案 回答工人的问题将有一个主键+问题的外键+可能答案的外键+工人的外键+您需要收集的任何其他数据。
实施例
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