【发布时间】:2013-05-10 18:55:20
【问题描述】:
我有一个两难的问题,希望你能有一些专家意见。
我有一个名为 CARDS 的表,其中有一列 STATUS。如果记录的状态从“下载”变为“发布”,我必须将记录引用插入到另一个名为 CARD_ASSIGNMENTS 的表中。此外,需要将记录添加到 CARD_ASSIGNMENTS 中的次数与 SCANNERS 中的活动记录一样多。
换句话说,如果有两个活动的扫描仪,我将在 CARD_ASSIGNMENTS 中得到两条记录,如下所示:
ID CARD_ID SCANNER_ID STATUS_ID
1 1 1 4
2 1 2 4
我的困境是我不太确定执行上述操作的最有效方法是什么。我考虑了以下选项:
- 从 PHP - 执行一个 UPDATE 查询,然后执行 INSERT 查询。
- 创建一个存储过程,它将负责更新 CARDS 记录并将记录添加到 CARD_ASSIGNMENTS 中。然后,只需从 PHP 调用该存储过程。
- 为 CARDS 表创建一个 ON UPDATE 触发器,该触发器将负责将 INSERTS 处理到 CARD_ASSIGNMENTS 表中。
附言。我的数据库的简化版本可在 MySQL Fiddle
上找到谢谢,
凯特
【问题讨论】:
-
我稍微更改了您的标题以反映困境。如果你更喜欢它之前的样子,你可以完美地把它转回来。
标签: php mysql database-design