<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Wstępna validacja wprowadzanych danych]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=653</link>
		<description><![CDATA[Najświeższe odpowiedzi w Wstępna validacja wprowadzanych danych.]]></description>
		<lastBuildDate>Tue, 04 Oct 2011 14:00:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Wstępna validacja wprowadzanych danych]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2745#p2745</link>
			<description><![CDATA[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.]]></description>
			<author><![CDATA[dummy@example.com (herr3ro)]]></author>
			<pubDate>Tue, 04 Oct 2011 14:00:19 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2745#p2745</guid>
		</item>
	</channel>
</rss>
