我创建了一个办公室调度程序,该程序使用jQuery发布到PHP文件,然后将约会插入pgSQL数据库。尚未发生,但我可以预见到将来会出现此问题-两名上班族试图同时在同一时段安排约会,从而形成竞争条件,并且一组客户数据将会丢失,或者至少会丢失我必须从日志中挖掘出来。我想知道是否可以在数据库中设置一个标志,是否需要创建某种关守程序来控制服务器连接,或者是否可以与javascript / php /一起使用某种互斥锁/锁/信号灯sql,以防止发生这种竞争情况。
最佳答案
您可以使用数据库标志锁定它,或者更好的策略是检测冲突,因为这仅在极少数情况下发生。
要检测到该问题,您可以从数据库中保存一个包含上次更新时间的时间戳。将其与表格一起发送,并在更新记录之前比较时间戳。如果时间戳已更改,则向用户提供所有数据并询问他们要做什么。这为第二个保存用户提供了一种根据他们希望保存的基于先前保存的数据的更改的方法。
还有其他方法可以解决此问题,正确的解决方案取决于特定问题的性质。
关于php - Ajax/JQuery数据库访问/互斥,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4330069/