适用于同一数据集上的多个用户的技术


Technique for multiple users on same datasets

这更多的是一个学习问题,而不是编码,但我确信这对任何在php/mysql/js等中开发管理系统或应用程序的人来说都是一个常见的问题。

我开发了一个相当复杂的应用程序,允许用户上传图像,并通过相关操作在其中定义热点。图像存储在一个表中,操作存储在另一个表,每个操作的json数据都存储在文本字段中。这是一种杂志风格的格式,由自定义阅读应用程序使用。然而,正如我所说,这个问题是普遍的。

基本上,我担心的是,如果有人同时编辑同一张图片和一组动作,并且他们都提交了更改,或者如果它是由其他人编辑的,那么有一系列结构可能会在提交时失败。

我不想实现锁定系统,因为这个系统范围很广(链接到其他图像等),我觉得它有点难看。我在另一个问题中看到了这个链接(MSDN多租户体系结构文章),但它似乎有点势不可挡,而且专门针对sql server。

那么,我可以研究一下这里的数据和系统架构术语是什么,或者人们可以推荐一些关于这个主题的好文章吗?特别是php/web世界将是伟大的!

--

我仍在寻找对这个问题的好回答。同时发现通用术语是"并发",但技术是重要的:)

第一个

ALTER TABLE tablename ADD COLUMN changecount BIGINT NOT NULL DEFAULT 0; 

所有相关表格。然后,每当你想提交更改时,不仅要使用

UPDATE tablename SET whatever WHERE id=whatever

但是

UPDATE tablename SET whatever, changecount=changecount+1 WHERE id=whatever AND changecount=the_changecount_you_remembered_from_loading_the_object

现在,如果一个用户提交了一个更改,它将更新changecount-另一个提交了对同一对象的更改,但从旧状态加载的用户,可以被告知"另一个用户刚刚更改了等等"