Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaki typ danych powinien być używany do przechowywania numerów telefonów w SQL Server 2005?

Czy obejmuje to:

  • Numery międzynarodowe?
  • Rozszerzenia?
  • Inne informacje oprócz rzeczywistej liczby (np. „poproś o Bobby”)?

Jeśli wszystkie z nich są nie, użyłbym pola o wartości 10 znaków i wyrzuciłby wszystkie dane nieliczbowe. Jeśli pierwszy to tak, a pozostałe dwa to nie, użyłbym dwóch pól varchar (50), jednego dla oryginalnych danych wejściowych i jednego z wszystkimi nienumerycznymi danymi rozłożonymi i używanymi do indeksowania. Jeśli 2 lub 3 są tak, myślę, że zrobiłbym dwa pola i jakiś szalony parser, aby określić, co jest rozszerzeniem lub innymi danymi i odpowiednio sobie z tym poradzić. Oczywiście możesz uniknąć drugiej kolumny, robiąc coś z indeksem, w którym usuwa on dodatkowe znaki podczas tworzenia indeksu, ale ja po prostu utworzyłbym drugą kolumnę i prawdopodobnie usunę znaki za pomocą wyzwalacza.

Aktualizacja:aby rozwiązać problem AJAX, może nie być tak źle, jak myślisz. Jeśli jest to realistycznie główny sposób, w jaki cokolwiek jest robione w tabeli, przechowuj tylko cyfry w drugiej kolumnie, jak powiedziałem, a następnie ustaw indeks tej kolumny jako klastrowany.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pamięć podręczna bufora:co to jest i jak wpływa na wydajność bazy danych?

  2. Czy posiadanie „LUB” w warunku INNER JOIN to zły pomysł?

  3. SQL Server w systemie Linux

  4. Widoki w SQL Server

  5. Używanie varchar(MAX) vs TEXT na SQL Server