Php 数据一致性,php – 我应该在哪里管理数据库的一致性?

我想了解在代码中管理数据库一致性的优点/缺点,而不是使用SQL功能.

只是为了解释:

一致性意味着如果我有用户,并且每个用户都有专辑并且每个专辑都有图像,则删除用户意味着删除(或软删除)所有专辑和图像.这也可能意味着在每个用户和每个专辑的主键上都有连续ID的图像.

在代码中意味着在我的框架代码中使用“on inserted,deleted,updated”事件(例如Eloquent)

sql功能意味着使用级联,触发器等.

人们抱怨这是基于意见的,但事实并非如此.如果使用mysql shell,那么仅应用代码规则并且没有约束可能会导致不一致 – 这是事实.

此外,如果某人有最佳实践和参考资料的链接,那也很好,我真的很想知道谷歌的开发人员做了什么 – 例如again.not.opinions.but.facts.

编辑:拼写,格式化,呼吁重新打开基于问题的事实措辞.

解决方法:

一个Laravel答案

因为你用laravel和mysql标记了这个问题,我将给你一个支持Laravel开发风格的答案. Laravel通过Artisan支持Eloquent ORM和数据库迁移.这将允许您在代码中保持这种“一致性”,而不是严格地在DB上.

ORM

有大量资源可用于了解ORM是什么以及它是如何工作的. Laravel使用Eloquent,允许您为模型及其元素强制执行关系和规则.

迁移

使用migrations,我们可以以对我们的模型有意义的方式构建我们的数据库,同时使其在大多数数据库(MySQL与Postgres)之间保持可移植性.

多开发人员应用程序

由多个开发人员开发的应用程序需要一种保持同步的方法.如果一个开发人员决定添加具有某些约束的表,则需要将其传达给团队的其他成员.直接向数据库添加规则可能会在与其他团队成员通信时导致问题并且会引起麻烦.相反,使用迁移和ORM来描述正在改变的内容以及原因.迁移将允许任何其他开发人员简单地将他们的数据库“迁移”到最新版本并保持同步.

结论

要与其他一些列出的答案进行比较:

>所有代码仍在一个地方.迁移和模型是用PHP制作的,并保存在项目仓库中.

>由于ORM和迁移的数据库规则,它已在应用程序中实施.

>实用,因为Laravel社区内有大量关于这些主题的文档和帮助,可以说这是解决这个问题的“官方”方法.

> KISS这将使一切变得简单,特别是如果您正在与其他开发人员和环境打交道,因为它非常便携.

标签:php,laravel,sql,mysql,laravel,mysql

来源: https://codeday.me/bug/20190830/1767106.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值