Questo include:
- Numeri internazionali?
- Estensioni?
- Altre informazioni oltre al numero effettivo (come "chiedi di bobby")?
Se tutti questi sono no, userei un campo di 10 caratteri ed eliminerei tutti i dati non numerici. Se il primo è un sì e gli altri due sono no, userei due campi varchar(50), uno per l'input originale e uno con tutti i dati non numerici barrati e usati per l'indicizzazione. Se 2 o 3 sono sì, penso che farei due campi e una specie di parser pazzo per determinare qual è l'estensione o altri dati e gestirli in modo appropriato. Ovviamente potresti evitare la seconda colonna facendo qualcosa con l'indice in cui elimina i caratteri extra durante la creazione dell'indice, ma creerei solo una seconda colonna e probabilmente farei la rimozione dei caratteri con un trigger.
Aggiornamento:per risolvere il problema AJAX, potrebbe non essere così grave come pensi. Se questo è realisticamente il modo principale in cui qualsiasi cosa viene eseguita sulla tabella, archivia solo le cifre in una colonna secondaria come ho detto, quindi imposta l'indice per quella colonna in quello raggruppato.