php - MySQL/PHP 如何设置和填充关系数据库以一次插入几行?

标签 php mysql database insert relational

因此,我有一个页面网站,总部用户可以在其中填写一份表格,提供有关其在全国 25 个地点之一(称为单位)的详细信息。还有一个页面,总部用户可以填写表格,提供 147 家供应商之一的详细信息,这些供应商可能会或可能不会供应某些单位。

我的问题是以简单且有意义的方式将单位与供应商联系起来的最佳方式是什么?

显然,我可以设置一个表格,您可以在其中选择单个单位和单个供应商,但这对于总部用户来说会很乏味且耗时,因为某些单位可能由 50 多个供应商提供。还有其他更聪明的方法来解决这个问题吗?

最佳答案

要么有一个单独的表来连接两者

unit_suppliers

unit_id,supplier_id

主键是 unit_id 的组合和supplier_id

或者有一个suppliers单位表中的字段,包含该单位的供应商 ID 的逗号分隔字符串

对于第一种情况,要获取某个单位的供应商,sql 如下所示

SELECT * FROM suppliers WHERE id IN (SELECT supplier_id FROM unit_suppliers WHERE unit_id='$UnitID')

( $UnitID 是包含单位 ID 的 php 变量)

第二次你会这样做

SELECT * FROM suppliers WHERE find_in_set(id,(SELECT suppliers FROM units WHERE id='$UnitID')) <> 0

然后在您的表单中有某种方法为一个单位选择多个供应商并相应地插入数据库

关于php - MySQL/PHP 如何设置和填充关系数据库以一次插入几行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16832872/

相关文章:

javascript - 如何使用php中的explode函数拆分数据库中的值

php - 使用 UNION 查询 3 个表仅适用于其中 2 个表

database - 如何在运行时更改 Play 2 Framework DB 配置?

c# - Npgsql参数化语句

mysql - 数据库设计 - 表单生成器

php - 等待socket_write完成后再重新写入

php - Joomla ZOO 元素计数器

php - 用常量定义表和列名

PHP:使用某种 'break' 返回到循环的开始?

php - 数据库连接不工作