|
Тема |
Re: Има нещо генерално сбъркано .. [re: Maнoлчo] |
|
Автор |
Blandings Castle (Emsworth) |
|
Публикувано | 16.07.05 18:14 |
|
|
Access-а не прощава никому. По старото поколение DB програмисти е повредено от clipper -a, лека му пръст(на clippera, не на поколението) и за съжаление следващото върви с други средства по стъпките му.
накратко, connected приложенията стават само за дипломни работи (и в програма за магазин със 2 продажби на ден).
В реалния живот по този начин ще направиш няколко зулума наведнъж:
Ще си изпозаключиш базата както и турчин не я е заключвал(ще си позволя да цитирам соц класиците) ако тръгнеш да селектваш for update - лелята, която влиза в режим редактиране и после отива да пие кафе или вади плетката е класика в жанра.
Ще си задръстиш и мрежата със иди ми/дойди ми рефрешване. Което като цяло трябва да го правиш пак от приложението на някакъв timer event - това в случай че не държиш данни при клиета. Ако данните са при клиента, на практика пак трябва да ги локваш на сървъра(ако ги е взел някой, не трябва останалите да пипат по взетите неща).
Може би най-чисто и безболезнено е да си правиш проверка при запис/изтриване. Една нелоша стратегия е да ползваш timestamp-и. Не знам как точно е при Postgre-тo, но идеята е следната - когато си вземеш данни за редакция ги прибираш със timestamp - някакъв идентификатор за актуална версия на реда в таблицата. Ако при запис не е променена, си ОК. Ако има промяна, или ползваш hardcoded логика, или оставяш user-a да решава какво да прави.
Относно concurrent updates, базата би трябвало да се оправи без много услия от твоя страна.
|
| |
|
|
|