【问题标题】:Dynamically resizing form - simple db design?动态调整表格大小 - 简单的数据库设计?
【发布时间】:2015-11-10 15:05:27
【问题描述】:

所以我的表单中有三个字段:用户信息、主机名信息和附加信息。主机名信息是一个动态字段,意味着用户可以为该部分添加更多字段。我的解决方案之一是在 php POST 页面中执行 for 循环,并根据有多少主机名提交该信息。还有比这更好的方法吗?我的最终目标是希望从 MySQL 数据库中提取此信息并根据每个表单提交显示它。我只想显示一次用户信息,然后显示与该用户关联的所有主机名。

例子:

假设我们已经从表单提交了几个请求。然后数据库现在看起来像这样(省略 addinfo):

主机名是表单中的动态字段。

第一个-----最后一个-----主机名

John-----Doe-----www.test1.com

John-----Doe------www.test2.com

John-----Doe-----www.test3.com

Ally-----帕克-----www.hello1.com

Ally-----帕克-----www.hello2.com

John-----Doe-----www.tired1.com

John-----Doe-----www.tired2.com

我如何提取数据以便它只提取每个请求(为其他用户考虑)?

最终目标示例:

请求 1: 第一名:John,最后一名:Doe,主机名:www.test1.com、www.test2.com、www.test3.com 要求 2: 第一名:Ally,最后一名:Parker,主机名:www.hello1.com、www.hello2.com 请求3: First John,Last Doe,主机名:www.tired1.com、www.tired2.com

【问题讨论】:

  • 你有一些代码吗?或者只是希望我们为您编写代码?
  • 对不起,我是新来的。我会添加一些代码

标签: php mysql forms


【解决方案1】:

您的数据库设计根本上是错误的,理想情况下您应该将其拆分为两个表:

表 1:用户 ID、名字、姓氏、附加信息...每个用户存储一次。

表 2:用户 ID、主机名,其中存储了用户 ID 和主机名的组合。

然后,您可以从表 1 中获取 ID,并使用它在两个查询中从表 2 中获取主机名。

【讨论】:

  • 谢谢!这就是我正在考虑的,但对作为主键的用户 ID 感到困惑。我如何将它们链接到两个单独的表中?我猜 table1 的用户 id 会自动增加,但是 table2 呢(因为有多个字段)?
  • 表 1 的用户 ID 只是设置为自动递增的主键,表 2 的用户 ID 是一个简单的整数集,作为链接到表 1 的用户 ID 的外键。表 2 的用户 ID 没有任何唯一约束,因为它可以为同一个用户 ID 提供多个条目。这基本上是用户和主机之间的一对多关系。
  • 这正是我所需要的。非常感谢!!
猜你喜欢
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多