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

weixin_38082682 2019-09-12 10:49:16
我想了解在代码中管理数据库一致性的优点/缺点,而不是使用SQL功能. 只是为了解释:一致性意味着如果我有用户,并且每个用户都有专辑并且每个专辑都有图像,则删除用户意味着删除(或软删除)所有专辑和图像.这也可能意味着在每个用户和每个专辑的主键上都有连续ID的图像. 在代码中意味着在我的框架代码中使用“on inserted,deleted,updated”事件(例如Eloquent) sql功能意味着使用级联,触发器等. 人们抱怨这是基于意见的,但事实并非如此.如果使用mysql shell,那么仅应用代码规则并且没有约束可能会导致不一致 – 这是事实.此外,如果某人有最佳实践和参考资料的链接,那也很好,我真的很想知道谷歌的开发人员做了什么 – 例如again.not.opinions.but.facts. 编辑:拼写,格式化,呼吁重新打开基于问题的事实措辞.
...全文
12 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38085230 2019-09-12
  • 打赏
  • 举报
回复
一个Laravel答案 因为你用laravel和mysql标记了这个问题,我将给你一个支持Laravel开发风格的答案. Laravel通过Artisan支持Eloquent ORM和数据库迁移.这将允许您在代码中保持这种“一致性”,而不是严格地在DB上. ORM 有大量资源可用于了解ORM是什么以及它是如何工作的. Laravel使用Eloquent,允许您为模型及其元素强制执行关系和规则. 迁移 使用migrations,我们可以以对我们的模型有意义的方式构建我们的数据库,同时使其在大多数数据库(MySQL与Postgres)之间保持可移植性. 多开发人员应用程序 由多个开发人员开发的应用程序需要一种保持同步的方法.如果一个开发人员决定添加具有某些约束的表,则需要将其传达给团队的其他成员.直接向数据库添加规则可能会在与其他团队成员通信时导致问题并且会引起麻烦.相反,使用迁移和ORM来描述正在改变的内容以及原因.迁移将允许任何其他开发人员简单地将他们的数据库“迁移”到最新版本并保持同步. 结论 要与其他一些列出的答案进行比较: >所有代码仍在一个地方.迁移和模型是用PHP制作的,并保存在项目仓库中.>由于ORM和迁移的数据库规则,它已在应用程序中实施.>实用,因为Laravel社区内有大量关于这些主题的文档和帮助,可以说这是解决这个问题的“官方”方法.> KISS这将使一切变得简单,特别是如果您正在与其他开发人员和环境打交道,因为它非常便携.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧