保存家长和孩子记录的最佳实践

问题描述 投票:0回答:1

我正在与老板讨论一项职能。我希望得到观众的意见,以便我可以将其呈现给他。

我接手的一个项目,有一个在数据库中创建记录的功能。然而,该父记录在各个表中都有许多子记录。这是代码的流程:

  1. 验证父对象的数据。如果通过了那么...创建
  2. 孩子们在各种表格中记录。全部完成后,然后
  3. 创建父记录。最后,
  4. 返回并更新所有儿童记录。

没有外键,链接到父级的字段可以为空。

我们遇到的问题是,验证不彻底,所以应该失败的时候验证可能会通过。创建了子记录,但父记录由于超出数据长度而出现数据库错误。我们修复了验证,但网站的其他方面失败了,我们不得不回滚更改。

php sql mysql mariadb
1个回答
0
投票

开始交易。

插入子行。

尝试插入父行。

如果其中任何一个失败,则回滚事务。

如果全部成功,则提交事务。

显然,所有表必须使用相同类型的支持事务的存储引擎来定义。例如。 InnoDB,这是默认的存储引擎。

© www.soinside.com 2019 - 2024. All rights reserved.