2012-04-05 9 views
0

Hallo Leute, ich benutze MVC3 und möchte wissen, wie man den gleichen Primärschlüssel stoppt, der in meiner Anwendung eingegeben wird. Ich habe meine Primärschlüssel gesetzt als NVARCHAR (100), und es kann die Konsole Namen Ich brauche eine reg x von simlar Validierung ermöglichen, damit die Benutzer den gleichen Namen Eingabe wieder dankWie kann ich aufhören, denselben Primärschlüssel zuzulassen?

Wenn Sie weitere Informationen benötigen, wenden Sie sich bitte

+0

Es stürzt ab, wenn ich versuche, den gleichen Namen wieder einzugeben, deshalb brauche ich Validierung dank – user1137472

+0

welches Datenbanksystem verwenden Sie? –

+0

Sie wollen Regex verwenden, um Ihre Datenbank abzufragen, um zu sehen, ob bereits eine PK existiert? –

Antwort

2

Wie ich kürzlich geantwortet habe, empfehle ich die Verwendung von varchar() und nvarchar() Spalten als Primärschlüssel. Sie sind bei Joins und QueryById() - Operationen langsamer und die Versuchung besteht darin, den Wert zu bearbeiten (was ich auch empfehlen kann). Das Bearbeiten von Primärschlüsseln ist schlecht, da in der Spalte ein Clustered-Index vorhanden ist. Wenn Sie die Werte ausreichend ändern, wird der Index verschoben und muss neu erstellt werden.

Es ist besser, eine IDENTITY-Spalte (SQL Server) oder SEQUENCE (Oracle) zu verwenden und eine UNIQUE-Einschränkung für die Spalte Name festzulegen. Mit der eindeutigen Einschränkung wird vom Datenbankmodul eine Ausnahme ausgelöst, wenn der Benutzer versucht, einen doppelten Namen einzugeben. Ihr Code sollte die Ausnahme abfangen und dem Benutzer eine entsprechende Fehlermeldung anzeigen.

+0

Ich möchte sie nicht bearbeiten, es scheint, Sie haben die Frage nicht gelesen, alles was ich will ist, den Benutzer von der Eingabe der gleichen ID wieder zu stochern – user1137472

+0

Vielleicht hast du nicht alle meine Antwort gelesen ... – mgnoonan

+0

@ user1137472 wenn Sie Antworten wollen , Sie müssen Ihre Frage klären, ich stimme dafür, dass sie geschlossen wird –

0

Ich glaube nicht, dass Sie eine Regex dafür brauchen. Bevor Sie den neuen Datensatz zur Datenbank hinzufügen, führen Sie einfach eine select aus und prüfen Sie, ob sie bereits vorhanden ist.

Und wie mgnoonan Staaten, die Verwendung von Varchars als Primärschlüssel ist nicht allgemein eine gute Praxis. Jedes Mal, wenn ich es jemals gesehen habe, hat es irgendwann Probleme verursacht.

Verwandte Themen