gpt4 book ai didi

php - 实现 "soft"保存或修改工作流的最佳方式是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:10 26 4
gpt4 key购买 nike

我正在 LAMP 上开发一个基于 MVC 的网络应用程序,它需要一些记录只有在“高级”用户的批准下才能修改。 (普通用户可以提交更改,但只有在批准后才能应用)

只有一个表必须在其中发生,比如“事件”:

事件 - ID - 名称 VARCHAR - 开始日期 DATETIME - 访客整数

每次事件的属性之一被“普通”用户修改时,这些更改不会正式生效,直到该“ super ”用户进行修订(和可能的批准)。

起初我想到了以下选项:

  • 复制除 id 之外的每一列,对“名称”说 name_temp,以保存待批准的修改。
  • 创建一个具有重复结构的单独表,并在其中保存所有待批准的修改。

你以前实现过这个吗?你认为最好的/你的方法是什么?还有:这种问题有什么模式吗?

谢谢!!!

PD:我需要将“旧”记录保留在原处,直到新记录获得批准。

最佳答案

让我对“第二张表”方法投上我的一票——正如其他两位受访者所说,它远远高于将“提议的更改”硬塞进主表的尝试(这会使它的架构复杂化,对它的每个查询等等)。

将所有预期更改写入辅助表并处理它们(如果它们满足某些条件,则将它们应用于主表)稍后“分批”确实是一种常见模式,当您需要主表仅在以下时间更改时通常很有用某些时候,提议的更改可以随时出现,也可以在其他情况下出现,例如当写入主表的成本非常高(锁定争用或其他)但写入 N 个更改并不比编写一个更改成本高多少,或者验证提议的更改非常耗时(您可以将您的用例归类为后一类,因为在您的情况下,验证需要人工查看提议的更改——按照计算机标准,这确实非常慢;-)。

关于php - 实现 "soft"保存或修改工作流的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/817906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com