最好的办法

问题描述:

所以我有这些HTML的输入,我可以用JavaScript生成它们允许用户输入自己的历史经验,所以让我们假设这个代码产生两次一样这最好的办法

<!-- User Experiense 1 --> 
<label>Company Name</label> 
<input type="text" class="form-control" name="company_name[]"> 

<label for="job-title">Job Title</label> 
<input type="text" class="form-control" name="job_title[]"> 

<label for="dates">From</label> 
<input type="date" class="form-control" name="start_date[]"> 

<label for="dates">To</label> 
<input type="date" class="form-control" name="end_date[]"> 

<!-- User Experiense 2 --> 
<label>Company Name</label> 
<input type="text" class="form-control" name="company_name[]"> 

<label for="job-title">Job Title</label> 
<input type="text" class="form-control" name="job_title[]"> 

<label for="dates">From</label> 
<input type="date" class="form-control" name="start_date[]"> 

<label for="dates">To</label> 
<input type="date" class="form-control" name="end_date[]"> 

,这些都是在数据库company_namejob_titlestart_dateend_date

这里的列是PHP代码

$js_company_name = []; 
if(isset($_POST['js_company_name'])){ 
    foreach($_POST['js_company_name'] as $selected) { 
    $js_company_name[] = $selected ; 
    } 
} 

$js_job_title = []; 
if(isset($_POST['job_title'])){ 
    foreach($_POST['job_title'] as $selected) { 
     $job_title[] = $selected; 
    } 
} 

$start_date= []; 
if(isset($_POST['start_date'])){ 
    foreach($_POST['start_date'] as $selected) { 
     $start_date[] = $selected; 
    } 
} 

$end_date= []; 
if(isset($_POST['end_date'])){ 
    foreach($_POST['end_date'] as $selected) { 
     $end_date[] = $selected; 
    } 
} 

我试图用serialize()unserialize()功能,但我espicially THIK它不是最好的解决方案,它的情况很多错误的巨额数据。 所以我希望如果有更好的解决方案,在数据库中存储数组, 在此先感谢:)

+0

尝试将数据存储在数据库中的'json' formate中 –

+0

这是怎么回事:) –

+0

nosql:https://www.mongodb.com/ –

你根本不应该。这不仅违反了关系数据库设计的First normal form,但当连接应该是“体验”实体的所有内容都是数组索引计数器时,您也可能成为对齐错误的受害者。

例如:如果不是所有的字段都是必填字段,空表单条目是否会创建一个空的数组值?这可能取决于提交表单的客户端(浏览器)。

在任何情况下,它的坏的数据库设计,您应该真正考虑模拟这种概念UserExperience或相似的,并将其连接许多-to-one的用户。

+0

所以,你所提出的建议在数据库中的用户体验,以创建另一个表?没错。@YetiCGB –

+0

没错。另请参阅[3NF](https://en.wikipedia.org/wiki/Third_normal_form)和关系数据库建模原则。 – YetiCGN

+0

我认为这将是唯一的解决方案,我只是不想将多个表中的用户数据分开,因为用户体验不是我需要以这种方式存储的唯一数据,因此也存在教育!这个解决方案将有至少3个用户数据表@YetiCGN –