我不确定如何简洁地问这个问题,所以我会通过情境来解释它。防止在通过PHP编辑MySQL行时同时覆盖
用户A决定他想通过HTML格式修改MySQL行。 同时,用户B决定他也希望以相同的方式修改相同的MySQL行。
我们会说MySQL的行是一个文本字段,它包含文本,'Can\'t touch this'
两个用户没有eachothers意向的知识。
User-A对MySQL行进行重大更改并将其保存到数据库。 MySQL行变为'Can\'t touch this was a popular track by the Hip-Hop artist M.C. Hammer.'
User-B对MySQL行进行小改动并将其保存到数据库。 MySQL行变为'Cannot touch this. Please avoid contractions.'
因为User-B决定在User-A完成其修改之前修改MySQL行,所以修改用户-A因User-B所做的修改而被覆盖。
如何允许同时编辑数据库行的脚本(如MediaWiki或任何其他维基软件)处理此问题?
AFAIK mediawiki不允许同时编辑其文档。上次我检查他们表明是否有人正在编辑文档,并告诉你避免在此期间进行更改。 – Gal 2011-05-11 19:46:29
几周前,SO允许同时进行编辑,直接覆盖以前的编辑,恕不另行通知。目前,该网站发布了一条错误消息,表明其他人编辑了帖子(或提出了编辑),从而不允许我(暂时)保存编辑的消息,让我浪费时间和精力进行无用的编辑。顺便说一句,我想你在倒数第二段中交换了结果。 – 2011-05-11 20:00:14
@sombe这是我以前使用的方法。然而,我发现了一个缺陷,因为锁定时间过长,用户合法地进行长时间编辑会超过然后无法提交,因为它变得自由并被其他人锁定。 – Kairu 2011-05-12 02:39:19