Temat: Wstępna validacja wprowadzanych danych
Witam, projektuję jedną małą aplikację webową, a że robię to dla nauki to chce zrobić idealnie, jestem na etapie projektowania i mam taki problem:
User wprowadza dane w formularzu, które lądują w tabeli, chciałbym przeprowadzić walidację, oczywiście mógłbym napisać taki walidator w Ruby (akurat w tym piszę) ale i tak muszę napisać odpowiednie constrainty w SQL, a jak już wcześniej wspomniałem, ta aplikacja jest to sztuka dla sztuki więc chcę ją wręcz absurdalnie zoptymalizować...
Z samymi constreint'am jest jeszcze taki problem że wywołują one ogólny wyjątek dot. niespełnienia warunku, ciężko z tego wywnioskować jakiego warunku. Więc już postanowiłem że wszelkie warunki zrobię w postaci trigerów, a każdy z nich będzie zwracał odpowiedni komunikat.
Taki triger/funkcję mogę wykorzystać do mojej walidacji, i wszystko by się już pięknie skończyło gdyby nie to, że nie wszystkie ograniczenia można załatwić trigerami, pozostają jeszcze unique i klucze obce... W zasadzie mogę napisać takie funkcje, które to sprawdzą ale ponieważ problem jest jak się domyślam raczej powszechny więc na pewno ktoś już gdzieś go rozwiązał i może jest jakiś bardziej elegancki sposób na walidację.
Mógłbym to załatwić transakcją ale było by to ohydnie nieładne rozwiązanie.
Wdzięczny będę za wszelkie rady i sugestie.