Próbuję Java aplikacji Google App Engine, jednak brak unikalnego ograniczenia utrudnia pewne sprawy. Byłem through this post i this blog sugeruje metodę realizacji czegoś podobnego. Moje tło jest w MySQL. Przechodzenie do magazynu danych bez unikalnego ograniczenia sprawia, że jestem roztrzęsiony, ponieważ nigdy nie musiałem się martwić o zduplikowane wartości przed i sprawdzanie każdej wartości przed wstawieniem nowej wartości wciąż ma miejsce na błąd.Wymuszanie wyjątkowego ograniczenia w GAE
"Nie, nadal nie można określić unikalnego podczas tworzenia schematu."
- David Underhill opowiada o GAE i unikalność (post link)
Co wy z wykorzystaniem zaimplementować coś podobnego do unikalnego lub klucza podstawowego?
Słyszałem o abstrakcyjnej warstwy magazynu danych utworzonej przy użyciu niskiego poziomu API, który działał jak zwykły RDB, który jednak nie był wolny (ale nie pamiętam nazwy programu)
Schematyczny widok mój problem
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
jednak na linii numer 3 (kontrolnego), czuję się dwóch użytkowników może dodać taką samą Sno. I właśnie to uniemożliwia mi pracę z appengine.
Czy transakcja na jednostce pojedynczej nie wymaga, aby singleton i wszystkie powiązane podmioty należały do tej samej grupy encji? –
@Jason, myślę, że Singleton można izolować we własnej grupie. Podmioty, które otrzymują numery seryjne, nie są z nim powiązane. Jedyne, co musi się zdarzyć w przypadku izolacji transakcji, to zwiększenie numeru seryjnego. Chętnie zakodowałbym przykład, ale programuję AppEngine z Pythonem. Nie dotykałem Javy od 1999 roku. –
@Jason Hall @Adam Crossland Muszę Ci powiedzieć, że wiele z tego, co powiedziałeś, "przeleciało" ponad moją głową. Nie mam doświadczenia z "transakcjami", jestem nowy w JAVA, ale rozumiem trochę pseudokodu, który jest podobny do tego, co obecnie robię. Będzie działać w scenariuszu o małym natężeniu ruchu, ale chcę być względnie pewny również w złych scenariuszach. Dzięki za doskonały napis! – abel