Concurrency - timestamp problemer
Jeg forsøger pt. at løse offline concurrency på bedst mulig måde, og har før arbejdet med timestamp, og synes det virkede ret godt, og vil derfor gerne bruge den tilgang igen.Det har så nu ledt mig i problemer i forhold til, at jeg ikke kan finde en metode at tvinge en update af timestamp kolonnen igennem, uden at skulle lave ændringer på rækken hvori den sidder.
Det lyder umiddelbart heller ikke som noget der burde skulle bruges, men i mit tilfælde kan jeg ikke rigtig se hvordan jeg ellers skal kunne komme uden om det.
Jeg sidder nemlig med (bl.a. men holder mig til et udsnit for at simplificere det), en tabel der repræsenterer forskellige pladser at bo på, og det er i denne tabel (fremover kaldet 'spots') jeg har mit timestamp. I en tabel (fremover kaldet 'participants') som deler en key med 'spots' lister jeg så alle personerne der kan bo den tilhørende plads. I 'participants' har jeg imidlertid ikke nogen timestamp tabel.
Grunden til at jeg struktureret det således er, at jeg gerne vil have mulighed for at hive data ud kun fra den ene af de to tabeller og så efterfølgende opdatere dem. Ved uddrag fra 'participants' vil jeg naturligvis så også være nød til at hive værdien at timestamp tabellen i 'spots' med ud også. Men det jeg gerne vil opnå er nemlig, at en ændring der kun sker i den ene af tabellerne altid opdaterer den samme timestamp, så det er denne kolonne der fortæller om der er sket ændringer på pladsen.
Problemet vil ellers være hvis jeg havde adskilte timestamp kolonner, at en person hiver en række ud af 'participants', og opdaterer rækken. Lige før han gør dette, hiver en anden alle data ud for den plads, og derfor også den gamle uredigerede person ud af tabellen, og han retter så på data i 'spots' og comitter dette efter den anden update. Det vil han få lov til, da hans timestamp er gyldig i forhold til 'spots' tabellen, men de data han har ændret ud fra er forældede, fordi de ikke er baseret på den nye ændring i 'participants'.
Det er dette jeg gerne vil undgå og derfor kun have én timestamp kolonne på tværs af 2 tabeller. Kan det lade sig gøre? Og i så fald, hvordan tvinger jeg så en update igennem når jeg kun laver opdataringer af 'participants' tabellen? Og hvis dette er en dårlig måde at gøre det på, hvad skal jeg så gøre istedet?
Mange tak for hjælpen.
Med venlig hilsen
Johny Iversen