Walidacja danych w Bazie Danych

0

Witam
Chciałbym się dowiedzieć czy istnieje jakaś gotowa metoda (lub w ogóle jak rozwiązuje się taki problem).
Wykonywana jest rejestracja użytkowników i ich dane zapisywane są do Bazy Danych Sql Server 2008 Expres. Jak przed zapisem podanych przez użytkownika sprawdza się czy takie dane nie istnieją już w mojej bazie ??

Osobiście widzę tu rozwiązanie na piechotę czyli: utworzyć n metod sprawdzających czy dana wartość jest już w tabeli w BD, jeśli tak to prosić o inną. Tyle że to dużo zapytań do Bazy danych (sprawdzenie jednej wartości = jedno zapytanie) tym bardziej że to aplikacja internetowa.
Są jakieś inne sposoby na rozwiązania tego problemu w (ASP.NET, C#) czy robi się to właśnie tak ?

0

index unikalny i przechwytywanie wyjątku

0

czy mógłbyś trochę rozwinąć swoją myśl ?

0

a co tu jest do rozwijania - zakładasz index unikalny na polach, które nie mogą się powtarzać i w aplikacji przy wstawianiu rekordu wstawiasz try catch żeby wyłapać naruszenie więzów unikatowych i informujesz o tym usera

0

Dzięki wszystkim już wiem jak to zrobić.
Misiekd - tych kilka słów więcej i wszystko jasne ;)

0

Unikalny ale nie index tylko ograniczenie.

Jeżeli chcesz zapewnić że dane będą unikalne zakładasz ograniczenie UNIQUE
Indeksy służą do optymalizacji odczytów a NIE do zapewnienia unikalności.

Więcej tutaj:
http://msdn.microsoft.com/en-us/library/ms177420.aspx

pzdr

0
TomaszSmykowski napisał(a)

Unikalny ale nie index tylko ograniczenie.

Jeżeli chcesz zapewnić że dane będą unikalne zakładasz ograniczenie UNIQUE
Indeksy służą do optymalizacji odczytów a NIE do zapewnienia unikalności.

Więcej tutaj:
http://msdn.microsoft.com/en-us/library/ms177420.aspx

pzdr

tak dziubeczku a realizowane jest to przez krasnoludki, które pilnują aby dane się nie duplikowały...
Proponuję najpierw zaznajomić się z tematem a dopiero potem się wypowiadać!

CONSTRAINT UNIQUE automatycznie zakłada index unikalny

1 użytkowników online, w tym zalogowanych: 0, gości: 1