我嘗試使用Google App Engine Java,但是沒有唯一的約束會使事情變得困難。 我一直在through this post和this blog建議一種方法來實現類似的東西。我的背景是在MySQL中。移動到沒有唯一約束的數據存儲讓我感到緊張,因爲我從來不必擔心之前重複的值,並在插入新值之前檢查每個值仍然存在錯誤空間。在GAE中實施唯一約束
「不,在模式創建過程中,您仍然無法指定唯一的 。」
- David Underhill關於GAE和獨特的約束(post link)
什麼是使用來實現類似的唯一或主鍵東西你們會談?
我聽說使用它的工作就像一個普通RDB,然而這是不是免費的(但我不記得軟件的名稱)
的示意圖低級API創建一個抽象的數據存儲層我的問題
sNo = biggest serial_number in the db
sNo++
Insert new entry with sNo as serial_number value //checkpoint
User adds data pertaining to current serial_number
Update entry with data where serial_number is sNo
然而,在3號線(檢測點),我覺得兩個用戶可以添加相同斯諾。這就是阻止我使用appengine的原因。
單身實體上的事務不需要單身人士和所有相關實體在同一實體組中嗎? – 2010-10-04 15:17:17
@Jason,我認爲Singleton可以在它自己的組中被隔離。接收序列號的實體與它無關。在交易隔離中唯一需要發生的是序列號的遞增。我很樂意編寫一個示例,但我使用Python編寫AppEngine。自1999年以來,並沒有觸及過Java。 – 2010-10-04 15:21:19
@Jason Hall @Adam Crossland我必須告訴你,你所說的大部分內容都是'woosh'。我沒有'交易'經驗,對於JAVA來說是新手,但我確實瞭解了一些僞代碼,這與我目前所做的類似。它將在低流量的情況下工作,但我想在惡劣的情況下也能相對確定。感謝您的優秀寫作! – abel 2010-10-04 16:08:59