0

这比编码更像是一个学习问题,但我敢肯定,对于任何在 php/mysql/js 等中开发管理系统或应用程序的人来说,这都是一个常见问题。

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

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

我不想实现锁定系统,因为系统范围很广(链接到其他图像等),而且我认为它有点难看。我在另一个问题中看到了这个链接(MSDN Multi-tenant architecture article),但它似乎有点压倒性并且专门用于sql server。

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

--

我仍在寻找有关此问题的良好答复。同时发现通用术语是“并发”,但技术是重要的:)

4

1 回答 1

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

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

于 2012-01-13T17:48:33.537 回答