2012-01-13 67 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