0

我有一个表格,在大多数情况下,非常基本。例外是两个字段组合在一起,我希望我的用户能够为这些分组字段创建多个值。例如,我的表单如下所示:

Your Name
Email Address
{Dog's Name
Dog's Breed}

2个狗字段是相关/组合在一起的字段。在这两个字段下方,我将有一个按钮,询问用户是否要添加另一只狗。单击此按钮后,将出现 2 个全新的 Dog's Name 和 Dog's Breed 字段。

我的问题是我应该如何构建我的数据库以使这些值进入?最好有一个只包含人名和电子邮件地址的提交表 - 然后 - 创建一个单独的表,其中只包含狗名和带有 ID(外键)的品种,它将每只狗与提交表中的条目相关联?

或者

是否有可能只有一个表(提交)包含名称、电子邮件、狗的名称、狗的品种列,但在狗的名称和狗的品种字段中包含多个值?

我希望我能清楚地解释这一点哈哈:)

4

1 回答 1

0

表 1:用户列:id(自动递增)、名称、电子邮件地址

表 2:Dogs 列:id(自动递增)、uid (=user_id)、name、breed

在提交时,检查用户是否存在(可以通过检查电子邮件地址来完成)。如果没有,插入一个用户并记住last_insert_id() 如果用户存在,选择它的 id。

现在循环遍历你的 dogs 数组,将它们插入到 dogs-table 中,使用我们刚刚找到的 $uid

你想要单独的桌子的原因是你现在每人可以拥有无​​限数量的狗。


你可以做得更好 ;) 表 3:dog_breeds 列:id (auto_increment), name

现在将“品种”从 dogs-table 更改为属于某个品种的 id。通过这种方式,您可以控制输入的品种数量,这可能有助于防止双重名称,例如我们的“名称”和“名称”(对于人类来说,它们是相同的)

于 2013-07-11T17:28:22.127 回答