Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Welcher Datentyp sollte zum Speichern von Telefonnummern in SQL Server 2005 verwendet werden?

Umfasst dies:

  • Internationale Nummern?
  • Erweiterungen?
  • Andere Informationen neben der eigentlichen Nummer (wie "nach Bobby fragen")?

Wenn all dies nein ist, würde ich ein 10-Zeichen-Feld verwenden und alle nicht numerischen Daten entfernen. Wenn das erste ein Ja und die anderen beiden ein Nein sind, würde ich zwei varchar(50)-Felder verwenden, eines für die ursprüngliche Eingabe und eines mit allen nicht numerischen Daten, die gestreift und für die Indizierung verwendet werden. Wenn 2 oder 3 ja sind, würde ich zwei Felder und eine Art verrückten Parser verwenden, um zu bestimmen, was Erweiterungen oder andere Daten sind, und angemessen damit umzugehen. Natürlich könnten Sie die zweite Spalte vermeiden, indem Sie etwas mit dem Index machen, wo es die zusätzlichen Zeichen beim Erstellen des Index entfernt, aber ich würde einfach eine zweite Spalte erstellen und das Entfernen von Zeichen wahrscheinlich mit einem Trigger machen.

Update:Um das AJAX-Problem anzugehen, ist es möglicherweise nicht so schlimm, wie Sie denken. Wenn dies realistischerweise die Hauptmethode für die Bearbeitung der Tabelle ist, speichern Sie, wie gesagt, nur die Ziffern in einer sekundären Spalte und machen Sie dann den Index für diese Spalte zum Clustered.