<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Wstępna validacja wprowadzanych danych]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=653&amp;type=atom"/>
	<updated>2011-10-04T14:00:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=653</id>
		<entry>
			<title type="html"><![CDATA[Wstępna validacja wprowadzanych danych]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2745#p2745"/>
			<content type="html"><![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.]]></content>
			<author>
				<name><![CDATA[herr3ro]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=985</uri>
			</author>
			<updated>2011-10-04T14:00:19Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2745#p2745</id>
		</entry>
</feed>
