…i nauczyłem się, że w aplikacjach klient-serwer, WSZYSTKO co można przerzucić na serwer bazy danych, to powinno się tam implementować. Wyliczenie wartości faktury na podstawie kilkudziesięciu jej składników, rabatów po przekroczeniu kwoty faktury, rabatów dodatkowych w związku z grupą zakupową, etc, etc, etc… to wszystko obliczało się w bazie danych, by otrzymać tylko końcowy wynik w postaci kwoty do zapłacenia.
Korzyści były oczywiste:
- bezpieczeństwo transakcji - wszystkie procedury składowane wykonywane w ramach jednej transakcji.
- brak przesyłania ogromnej ilości danych z serwera na stację klienta i później iterowanie po każdym wierszu i przesyłanie tego znowu na serwer.
Wywoływało się WyliczFakture(id_faktury) i czekało chwilkę na odpowiedź.
Nie ukrywam, że jestem zwolennikiem takiego rozwiązania, gdzie ok 80% całej logiki aplikacji było w procedurach składowanych i triggerach bazy danych.
A jak to się ma do Railsów?
Co mam zrobić przenosząc aplikację klient-serwer do środowiska Rails?
Czy chcąc zbudować nową aplikację mam zrezygnować z tego, co jest doskonale wytestowane i działało przez ponad 10 lat, czy też może konstruować tak apkę railsową, by i tutaj wywoływać procedury składowane w bazie danych z odpowiednimi parametrami?
Czy w ogóle ma sens takie konstruowanie aplikacji railsowych?
Edit:
Zaznaczam, że problem dotyczy przenoszenia starej aplikacji klient-serwer.