MySQL数据库结构,表示一个字段的值数量未知的表单

时间:2013-07-11 17:24:25

标签: mysql database database-design

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

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

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

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

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

我希望我能解释清楚哈哈:)

1 个答案:

答案 0 :(得分:0)

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

表2:狗 列:id(自动增量),uid(= user_id),名称,品种

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

现在循环你的狗阵列,将它们插入狗桌,我们刚刚找到的$ uid

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


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

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