Điều này có bao gồm:
- Số quốc tế?
- Tiện ích mở rộng?
- Thông tin khác ngoài con số thực tế (như "yêu cầu bobby")?
Nếu tất cả những điều này đều không, tôi sẽ sử dụng trường 10 ký tự và loại bỏ tất cả dữ liệu không phải số. Nếu trường đầu tiên là có và hai trường còn lại là không, tôi sẽ sử dụng hai trường varchar (50), một trường cho dữ liệu đầu vào ban đầu và một trường có tất cả dữ liệu không phải dạng số và được sử dụng để lập chỉ mục. Nếu 2 hoặc 3 là có, tôi nghĩ tôi sẽ thực hiện hai trường và một số loại phân tích cú pháp điên rồ để xác định đâu là tiện ích mở rộng hoặc dữ liệu khác và xử lý nó một cách thích hợp. Tất nhiên bạn có thể tránh cột thứ 2 bằng cách làm điều gì đó với chỉ mục nơi nó loại bỏ các ký tự thừa khi tạo chỉ mục, nhưng tôi chỉ tạo cột thứ hai và có thể thực hiện việc loại bỏ các ký tự bằng một trình kích hoạt.
Cập nhật:để giải quyết vấn đề AJAX, nó có thể không tệ như bạn nghĩ. Nếu thực tế đây là cách chính của bất kỳ thứ gì được thực hiện với bảng, hãy chỉ lưu trữ các chữ số trong cột phụ như tôi đã nói, sau đó đặt chỉ mục cho cột đó thành một nhóm.