Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Serwer dla MS-SQL (crosspost)

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Serwer dla MS-SQL (crosspost)
From: Adam <a.g@poczta.onet.pl>
Date: Tue, 22 Apr 2014 21:13:44 +0200
W dniu 2014-04-19 22:11, Adam pisze:
W dniu 2014-04-19 21:03, wloochacz pisze:
W dniu 2014-04-19 19:00, Adam pisze:
(...)
W dobrze zaprojektowanej i wdrożonej aplikacji (i bazie danych
oczywiście) nie ma prawa zdarzyć się coś takiego jak "popsuta baza".
Nie wiem, może za mało widziałem, ale... Zajmuję się MSSQLem od wersji
2000 na poważnie i nigdy nie miałem przypadku popsutej bazy danych, na
poziomie serwera.
Braki w danych, osercone dokumenty, zagubione transkacje - pewnie, że
było. Ale to był efekt źle zaprojektowanej apliakcji. Tylko i wyłącznie.

Nie wiem, czy dobrze się wyraziłem.

Przykład:
Klient się "walnął" i z jakichś powodów trzeba fakturę wycować "do
bufora" ("Bufor" oznacza, że dokument jest zapisany, ale nie
zatwierdzony "na stałe", można go dowolnie zmieniać lub usunąć).

Przy wycofaniu do bufora trzeba pamiętać, aby wycofać dokumenty
magazynowe (czyli WZ), wycofać płatności (czyli KP), wrócić ewentualne
rezerwacje i jeszcze wiele innych rzeczy.
Wydaje mi się, że gdyby nie było triggerów, to serwisant mógłby
przykładowo wycofać WZ, przywrócić rezerwacje, ale zapomniałby o
wycofaniu płatności.

Tym zajmują się triggery.

Czy dobrze myślę?

(...)


Przypomniało mi się jeszcze jedno ważne zadanie dla triggerów: dodatkowe warunki.

W systemie CDN-Optima nie ma możliwości zdefiniowania "wymagalności" pól.
Przykładowo, formatka kontrahenta. Chcemy wymusić wprowadzenie wartości do pola "telefon" - najprościej zrobić trigger, który będzie darł pysk, jeśli chcemy zapisać kartę kontrahenta z pustym polem "telefon".
Oczywiście to dość prosty, wręcz trywialny przykład.
Nie bardzo wiem, jak inaczej można by to zrobić.

Zaleta: triggery "przeżywają" konwersję bazy danych do nowszej wersji, a Optima jest aktualizowana kilkukrotnie w ciągu roku.



--
Pozdrawiam.

Adam

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>