Autor | Zpráva | ||
---|---|---|---|
ash Profil |
#1 · Zasláno: 11. 1. 2006, 10:28:40
Ako ošetriť súčasnú editáciu riadku tabuľky dvoma užívateľmi?
Situácia: 1. Užívateľ SlowFox si otvorí formulár pre editáciu riadku tabuľky. 2. Užívateľ SpeedyGonzales si otvorí formulár pre editáciu rovnakého riadku tabuľky. Zmení niektoré polia a odošle. 3. Užívateľ SlowFox zmení niektoré polia a odošle. výsledok: Zmeny, ktoré urobil SpeedyGonzales sú stratené. Uvažoval som, že pred zobrazením formulára spojím všetky polia do stringu a zapamatám ich hash (asi cez md5?). Po odoslaní formulára, pred zápisom upravených hodnôt zamknem tabulku. Vypočítam hash aktuálnych hodnôt a porovnám s pôvodným. Ak sa rovnajú. je všetko OK, zapíšem data a odomknem tabulku. Ak nie, odomknem tabulku, oznámim SlowFoxovi, že medzitým niekto iný zmenil data, a zobrazím formulár s aktuálnym stavom. Má tento postup nejaké slabiny? Ako sa to rieši štandardne? |
||
error414 Profil |
#2 · Zasláno: 11. 1. 2006, 10:42:07
ash
Dej tam priznak otevreno zavreno, pokud se nekdo bude pokouset otevrit uz editovany nepusti ho to. Ma to jednu vadu ze pokud nekdo utevre soubor a zavre prohlizec tak uz ho neotevre nikdo. |
||
ash Profil |
#3 · Zasláno: 11. 1. 2006, 11:06:36
Ma to jednu vadu ze pokud nekdo utevre soubor a zavre prohlizec tak uz ho neotevre nikdo.
Jednak to, okrem toho užívatelia sú schopní otvoriť si formulár a odísť trebárs na obed. A riadok celý čas zostane blokovaný. |
||
Kajman_ Profil * |
#4 · Zasláno: 11. 1. 2006, 11:11:32
Většinou to dělám trošku jinak... ukládám časový příznak a uživatele při poslední změně. Tyhle hodnoty dám jako hidden input a když nesouhlasí s db (někdo stačil údaje upravit) nepovolým uložení - tedy výsledek stejný - SpeedyGonzales musí znovu upravit nejnovější verzi. Je to však v projektech, kde je malá šance na konflikty.
|
||
error414 Profil |
#5 · Zasláno: 11. 1. 2006, 11:25:10
Kajman_
Zrovna jsem to resil na svem blogu, ne ze by to bylo potreba ale jako zajimavost. Jak jsem uvedl vise tak takhle to ma vyresene mambo, ja jsem to vyresil stejne jen stim rozdilem ze se tabulka nezamkne ale jen pri pokusu o editaci uz otevreneho dokumentu se objevi varovani, ze clanek je editovan a ze to nmuze spusobit nekonzistenci dat a ............ |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0