2012-01-13 70 views
0

多个用户这比编写一个学习问题,但我敢肯定它是任何人开发的PHP管理系统或应用程序/ MySQL的一个常见问题/ JS等技术对同一数据集

我已经开发了相当复杂的应用程序,让用户可以上传图像,并用相关的动作定义热点。这些图像存储在一个表格中,而另一个中的操作,以及文本字段中每个动作的json数据。这是一种由自定义阅读应用程序使用的杂志风格格式。但是,就像我说的那样,问题是通用的。

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

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

那么 - 我可以调查的数据和系统体系结构的术语是什么,或者是否有一些关于这个主题的好文章可供人们推荐?特别是对于PHP /网络世界将是伟大的!

-

我仍然在寻找这个问题的良好回应。发现同时的总称是“并发”,但技术是最重要的事情:)

回答

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

+0

谢谢Eugen,这很有帮助,但我想了解更多关于人们使用的常见模式。我可以一起散列一些东西,就像你的建议一样,这样可以,但是有这样一个共同的问题,知道开发其他方法会很酷。投票:) :) – dmp 2012-01-13 17:55:02

+0

@danp谢谢,我也很好奇其他解决方案 - 以上是我们(几乎所有人)使用,但有更多的方法皮肤猫。 – 2012-01-13 18:04:55