相同数据集上的多个用户的技术

时间:2012-01-13 17:33:45

标签: php database concurrency web multi-user

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

我开发了一个非常复杂的应用程序,允许用户上传图像,并使用相关操作定义图像中的热点。图像存储在表中,操作存储在另一个表中,其中json数据用于文本字段中的每个操作。它是一种杂志样式格式,由自定义阅读应用程序使用。但是,就像我说的那样,问题是通用的。

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

我不想实现锁定系统,因为系统范围很广(链接到其他图像等),我觉得它有点难看。我在另一个问题中看到this link(MSDN多租户架构文章),但它看起来有点压倒性,专门用于sql server。

那么 - 我可以调查哪些数据和系统架构的术语,或者是否有一些人们可以推荐的关于这个主题的好文章?专门针对php / web世界会很棒!

-

我仍然在寻找这个问题的好回答。同时发现一般术语是“并发”,但技术是重要的东西:)

1 个答案:

答案 0 :(得分:1)

首先

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 - 另一个用户提交对同一对象的更改,但是从旧状态加载,可以告诉“另一个用户刚刚改变了等等”