Php 客户应用mysql设计系统

Php 客户应用mysql设计系统,php,mysql,database,forms,Php,Mysql,Database,Forms,我正在设计以下应用程序: 允许学生申请工作的工作申请系统 基本上,公司可以创建自定义表单,对公司工作感兴趣的学生必须填写这些表单 我有以下表格: //这将存储公司希望学生填写的表格名称: create table forms ( `id` INT(11), `company_id` INT(11), `name` varchar(255), `date_added` date, PRIMARY KEY (`id`)); CREATE TABLE form_options ( `id` IN

我正在设计以下应用程序: 允许学生申请工作的工作申请系统

基本上,公司可以创建自定义表单,对公司工作感兴趣的学生必须填写这些表单

我有以下表格:

//这将存储公司希望学生填写的表格名称:

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,并想向学生们提出以下问题:

你会如何描述自己? A.很好 B.负责的 C.勤奋 D.才华横溢

将以下行添加到表单表中:

表格:

  • 身份证号码:1
  • 公司编号:1
  • 名称:表格A(表格名称)
  • 新增日期:2011年12月28日
并将以下行添加到form_选项表中

  • 身份证号码:1
  • 公司编号:1
  • 表格编号:1
  • 问题:你如何描述自己
  • 活动:1(是活动问题)
  • 职位:1
  • 类型:单选(公司希望这是一个单选按钮类型的问题)
  • 必填项:1(是,问题是必填项。)
  • 数据:{a:nice;b:responsible;c:hardwilling;d:patientive}(这是一个序列化数组,存储学生对问题的可能选项)
问题是有很多公司。当一名学生申请一家公司时,除了一般表格(由所有学生填写)外,他们还必须填写该公司的表格。我正试图找出存储学生答案的最佳方法,因为每个字段都不同。像存储他们对公司表格的答案的最佳表格结构一样,考虑一个问题可以是一篇文章(文本),一个单选按钮列表类型的问题(意味着值是整数或字母),等等。这意味着学生对表格问题的答案可以是一篇文章(500个字符或更多),一个字母(作为单选按钮式问题的答案)或一行文本等


谢谢!

我不懂php,因此无法提供完整答案,但根据我在其他领域和语言的经验,我建议改为拨打
表单选项
表单问题

然后有一个
form\u answers
表,其中包含
form\u id
question\u id
以及答案

您还需要将“form”重命名为类似于application\u 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)
但要注意问题和答案。

一旦您意识到所需的全部复杂性和灵活性,您就可以很容易地使用a
text
字段类型来获得答案。您可以将漂亮的文本答案存储在收音机、复选框和下拉列表的值中

答案 文章,问题:这是不言自明的

是否:这将是一个无线电im假设,所以只需存储无线电选项的值,它可以是“是”和“否”

复选框:存储复选框的值

下拉列表:存储下拉列表的值

收音机:存储收音机的值

文件:存储文件的路径

id (int)
student_id (int)
form_option_id (int)
answer (text)