我正在设计以下的应用程序:一个工作申请系统,允许学生申请工作。
基本上,公司可以创建一个定制的表格,学生谁有兴趣在他们的公司工作,必须填写。
我有以下表格:
//这存储了公司希望学生填写的表格的名称:
create table forms (
`id` INT(11),
`company_id` INT(11),
`name` varchar(255),
`date_added` date,
PRIMARY KEY (`id`));
CREATE TABLE form_options
(
`id` INT(11) auto_increment,
`company_id` INT(11),
`form_id` INT(11),
`question` VARCHAR(255),
`active` int(2),
`position` int(4),
`type` enum('ESSAY', 'QUESTION', 'YESNO', 'CHECKBOX', 'DROPDOWN', 'RADIO', 'FILE'),
`required` tinyint(1),
`data` text,
`date_added` date,
PRIMARY KEY (`id`));form_options存储公司添加到表单中的每个问题(存储在forms表中)。因此,让我们假设A公司创建了一个表格A,并想向学生提出以下问题:
您是如何来描述自己的?很好的B.负责任的C.努力工作的D.天才
下面的行被添加到窗体表中:
表格:
form)
2011-12-28 )
并将下一行添加到form_option表中。
1
问题是有很多公司。学生申请公司时,除了一般的表格(所有学生填写的表格)外,还必须填写公司的表格。我试图找出最好的方法来存储学生的答案,因为每个领域是不同的。就像存储公司表单答案的最佳表格结构是考虑一个问题一样,可以是一篇文章(文本)、单选按钮列表型问题(意思是值是整数或字母)等。这意味着学生对表单问题的回答可以是一篇文章(500个字符或更多字符)、一个字母(作为单选按钮类型问题的回答)或一行文本,等等。
谢谢!
发布于 2011-12-29 00:23:19
我不知道php,所以不能提供完整的答案,但根据我在其他领域和语言方面的经验,我建议改用form_options form_questions。
然后有一个form_answers表,其中包含form_id、question_id和答案。
您还需要将“表单”重命名为类似于application_form的内容。
这样你就可以有桌子了:
application_form (id,name)
application_question (id,application_form_id)
application_answer (id,application_form_id, application_question_id)我会把它烘干成:
application_form (id,name)
question (id, application_form_id)
answer (id, question_id, application_form_id)不过,对问题和答案要小心。
一旦您意识到所需的全部复杂性和灵活性,您就很容易需要一个What mysql database tables and relationships would support a Q&A survey with conditional questions?。
发布于 2011-12-29 00:26:25
text字段类型可以很好地解决这个问题。您可以在收音机、复选框和下拉列表的值中存储漂亮的文本答案。
答案
id (int)
student_id (int)
form_option_id (int)
answer (text)文章,问题:这是不言自明的
yesno:这将是一个假设的无线电,所以只需存储无线电选项的值,它可以是“是”和“不是”。
复选框:存储复选框的值
下拉列表:存储下拉列表的值
收音机:储存收音机的价值
file:存储文件的路径
https://stackoverflow.com/questions/8662688
复制相似问题