Gebruik een unique constraint
. Probeer de record in te voegen/bij te werken en de uitzondering op te vangen die wordt gegenereerd wanneer de unieke beperking wordt geschonden. Dit is de enige manier om een uniek e-mailadres te garanderen; eerst controleren en vervolgens bijwerken is vatbaar voor gelijktijdigheidsproblemen, aangezien het mogelijk is dat iemand anders zijn/haar record bijwerkt naar dezelfde waarde die u probeert in te stellen, net nadat u de controle hebt uitgevoerd en voordat u het record bijwerkt.
Ook:leer hoe u where
gebruikt
-clausules. Je haalt nu ALLE records op, herhaalt ze enz., wat onnodig veel middelen kost, te lang duurt en gewoon een verspilling is. Als u wilt controleren op een record dat aan een criterium voldoet, schrijft u:
Select foo, bar from table where baz = 123
Waar baz = 123
is jouw criterium. Stel je voor wat er zou gebeuren als je 500 of zelfs 500.000 records in je huidige setup hebt. De database zou uw query uitvoeren, ALLE rijen uit die database verzamelen en ze overbrengen naar uw toepassing waar uw toepassing alle 500.000 resultaten zou herhalen. Of je vraagt de DB om te doen waar hij goed in is (en waarom je hem in de eerste plaats gebruikt):Geef mij de/alle record(s) die overeenkomen met criterium X. Je krijgt 1 of geen records (gezien de unieke beperking):1 =een record komt overeen met uw criterium, geen =er zijn geen records. Bespaart overdracht en "handmatig moeten kijken" van 499.999 records;-)