2010-12-01 72 views
2

我创建了一个办公室调度程序,它使用jQuery发布到PHP文件,然后将约会插入到pgSQL数据库中。这还没有发生,但我可以预见未来这个问题 - 两名上班族试图同时安排在同一个位置的预约,造成竞争状况,并且一组客户数据将丢失,或至少我必须从日志中挖出它。我想知道是否有一个我可以在数据库中设置的标志,如果我需要创建某种网守程序来控制服务器连接,或者如果有某种互斥/锁定/信号量,我可以使用javascript/php/SQL来保持这种竞争条件的发生。Ajax/JQuery数据库访问/互斥体

回答

3

您可以用数据库标志锁定它,或者更好的策略是检测碰撞,因为这只发生在极少数情况下。

要检测问题,可以从包含上次更新时间的数据库中保存时间戳。与表格一起发送,并在更新记录之前比较时间戳。如果时间戳发生了变化,则向用户提供所有数据并询问他们想要做什么。这为第二个保存用户根据以前保存的数据修改其更改提供了一种方法,如果他们愿意的话。

还有其他方法可以解决这个问题,适当的解决方案取决于具体问题的性质。

+0

感谢关于时间戳的想法!它很容易实现在我当前的日历之上。我试试看,然后更新它的结果。 – busbina 2010-12-01 23:16:13