1

我已经查看了关于 SO 的其他问题,但我似乎无法理解它是如何工作的。我正在建立一个枪支在线商店,该商店将对枪支和相关物品进行分类。我有两个问题-

问题 1

在这个问题中,我有一个添加产品表单,其中产品分为两部分;第一个是主要属性,第二个是次要属性。这是测试表的SS:

在此处输入图像描述

例如,某些枪支具有该型号的八种不同变体。它的枪管长度、枪托样式、子弹口径大小和其他功能可能不同。因此,我将在页面顶部显示 PRIMARY ATTRIBUTES,并在图表中列出所有列出 SECONDARY ATTRIBUTES 的子模型。

主要属性是该类别中的每个产品肯定具有的属性。次要属性是某些产品将具有的属性。因此,当填写并提交表单时,我希望将数据一次性插入所有表中。这是我的表:

在此处输入图像描述

问题 2

我的 SECONDARY ATTRIBUTES 表的创建方式可以一次添加一个属性。在上面的屏幕截图中,有八个辅助属性,我会创建一个循环,每次循环插入数据八次吗?希望这是有道理的,如果没有,我会更详细地介绍。

注意,我使用的是 PHP/MySQL。

编辑

我听取了大家的建议,并尝试使用这些建议来设计我的数据库。请看一下,看看我所做的是否有效。我正在学习 one->one、one->many、many->many 等简单概念……我看到的唯一可能是 one->one 的是制造商的产品。这看起来正确吗?我花了很多时间试图使它成为最好的,我感谢每个人的反馈/批评。以下是我的新架构:

在此处输入图像描述

谢谢,

4

2 回答 2

3
  1. 您不能“一次性”插入到多个表中,但您可以做下一个最好的事情:将插入视为单个事务的一部分,这样如果出现问题,任何已完成的工作部分都将是退出。

  2. 单个语句可以插入多条记录:http ://www.electrictoolbox.com/mysql-insert-multiple-records/

于 2012-09-27T19:16:00.377 回答
2

MySQL 支持多行插入:

INSERT INTO table
( col1, col2 )
VALUES
( 1, 'blah'),
( 2, 'foo'),
( 3, 'foobar')

您还可以使用 MySQLi 或 PDO,使用参数绑定,准备插入,然后多次执行 (http://us3.php.net/manual/en/mysqli.prepare.php)

于 2012-09-27T19:16:01.067 回答