Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 为Laravel中的每个模型实例创建新表_Laravel 5 - Fatal编程技术网

Laravel 5 为Laravel中的每个模型实例创建新表

Laravel 5 为Laravel中的每个模型实例创建新表,laravel-5,Laravel 5,我正在使用laravel5.1构建一个用于创建表单的应用程序 每个表单都是表单模型的一个实例。每个表单都可能有不同的字段范围。可能的字段在字段表中定义(,即:*名字*、*姓氏*、*出生日期*、*邮编*等)。表单和字段模型之间有很多关系 为了收集表单数据,我考虑为每个表单实例创建一个新表 例如,用户创建一个表单,其中包含字段*名字*、*姓氏*、*出生日期*和*邮政编码*。添加表单时,将使用创建一个表 Schema::create('form_' . $form->id, function(

我正在使用
laravel5.1
构建一个用于创建表单的应用程序

每个表单都是表单模型的一个实例。每个表单都可能有不同的字段范围。可能的字段在字段表中定义(
,即:*名字*、*姓氏*、*出生日期*、*邮编*等
)。表单和字段模型之间有很多关系

为了收集表单数据,我考虑为每个表单实例创建一个新表

例如,用户创建一个表单,其中包含字段
*名字*、*姓氏*、*出生日期*和*邮政编码*
。添加表单时,将使用创建一个表

 Schema::create('form_' . $form->id, function($table) {[... fields ...}).
当用户提交表单时,数据将使用表单实例作为模型进行验证,然后插入到定义的表中

我怀疑这是一个不好的或非正统的想法(主要是因为在运行中创建表感觉很危险),但如果您能提供第二种意见,我将不胜感激


有没有更好的方法来解决这个问题?

您可以相信自己的怀疑,即在动态创建表时感觉有些不太对劲。那真的不是个好主意。您用来运行应用程序的用户可能不应该具有创建权限,但这是一个单独的主题

一种解决方案是使用三个不同的表,并利用多态性来存储不同的数据类型,这些数据类型表示每个表单

|-----------------------------------------------------------------|
| id | form_id | field_id | data            | created_at          |
|-----------------------------------------------------------------|
| 1  | 1       | 1        | Joe             | 2015-09-02 12:01:00 |
| 2  | 1       | 2        | joe@domain.com  | 2015-09-02 12:01:00 |
| 3  | 1       | 3        | Test comment    | 2015-09-02 12:01:00 |
|-----------------------------------------------------------------|
示例表 注意:每个表中的字段只是作为示例给出的,您可能需要根据自己的业务需求对其进行扩展

形式 此表存储已创建的每个表单

|--------------------------------------------------------------------|
| id | name         | description                       | creator_id |
|--------------------------------------------------------------------|
| 1  | Example form | An example of how to setup forms. | 1          |
|--------------------------------------------------------------------|
表格字段 此表存储表单中可用的每个字段。
required
字段显示如何开始建立验证规则。可以添加更多的专栏来扩展这个想法(min、max等)

表格数据

此表存储每个表单的提交数据

|-----------------------------------------------------------------|
| id | form_id | field_id | data            | created_at          |
|-----------------------------------------------------------------|
| 1  | 1       | 1        | Joe             | 2015-09-02 12:01:00 |
| 2  | 1       | 2        | joe@domain.com  | 2015-09-02 12:01:00 |
| 3  | 1       | 3        | Test comment    | 2015-09-02 12:01:00 |
|-----------------------------------------------------------------|

你有理由相信自己的怀疑,即在运行中创建表会让人感觉不太对劲。那真的不是个好主意。您用来运行应用程序的用户可能不应该具有创建权限,但这是一个单独的主题

一种解决方案是使用三个不同的表,并利用多态性来存储不同的数据类型,这些数据类型表示每个表单

|-----------------------------------------------------------------|
| id | form_id | field_id | data            | created_at          |
|-----------------------------------------------------------------|
| 1  | 1       | 1        | Joe             | 2015-09-02 12:01:00 |
| 2  | 1       | 2        | joe@domain.com  | 2015-09-02 12:01:00 |
| 3  | 1       | 3        | Test comment    | 2015-09-02 12:01:00 |
|-----------------------------------------------------------------|
示例表 注意:每个表中的字段只是作为示例给出的,您可能需要根据自己的业务需求对其进行扩展

形式 此表存储已创建的每个表单

|--------------------------------------------------------------------|
| id | name         | description                       | creator_id |
|--------------------------------------------------------------------|
| 1  | Example form | An example of how to setup forms. | 1          |
|--------------------------------------------------------------------|
表格字段 此表存储表单中可用的每个字段。
required
字段显示如何开始建立验证规则。可以添加更多的专栏来扩展这个想法(min、max等)

表格数据

此表存储每个表单的提交数据

|-----------------------------------------------------------------|
| id | form_id | field_id | data            | created_at          |
|-----------------------------------------------------------------|
| 1  | 1       | 1        | Joe             | 2015-09-02 12:01:00 |
| 2  | 1       | 2        | joe@domain.com  | 2015-09-02 12:01:00 |
| 3  | 1       | 3        | Test comment    | 2015-09-02 12:01:00 |
|-----------------------------------------------------------------|

谢谢,BigPun,这很有道理。我对这种安排的关注是form_数据表的潜在大小,因为我们将创建大量表单并收集大量数据。每个表单的提交量可能达到30k,所以如果每个表单有10个字段,那么可能有300000行。100张表格之后,就有3000万行了。我想需要安排一个归档任务,以防止表达到文件大小限制。也许可以看看切分来处理这个问题。我真的无法评论,因为我不了解业务,但在处理这些问题时,我总是考虑一些事情。谢谢,BigPun,这很有道理。我对这种安排的关注是form_数据表的潜在大小,因为我们将创建大量表单并收集大量数据。每个表单的提交量可能达到30k,所以如果每个表单有10个字段,那么可能有300000行。100张表格之后,就有3000万行了。我想需要安排一个归档任务,以防止表达到文件大小限制。也许可以看看切分来处理这个问题。我不能真正评论,因为我不知道业务,但始终是我认为当处理这些问题。