2008-11-24 39 views
16

Với độ tuổi của tin nhắn văn bản và những thứ tương tự, cách tốt nhất để lưu trữ số điện thoại trong cơ sở dữ liệu là gì?Làm cách nào để lưu trữ số điện thoại di động trong cơ sở dữ liệu?

Ở Mỹ, tin nhắn văn bản được xử lý bằng số điện thoại nhưng ở các quốc gia khác tôi nghe họ sử dụng địa chỉ email, vì vậy tôi đoán cần có cách phân biệt giữa các quốc gia sử dụng số điện thoại di động làm địa chỉ của họ.

Ngoài ra: Ví dụ: mọi người ở Hoa Kỳ có thể sử dụng 432-342-3333 hoặc 1-432-342-3333 trong khi ở Vương quốc Anh, họ có thể sử dụng +44 800 400000 hoặc thậm chí họ có thể bỏ qua 44. 44 và số 1 tạo sự khác biệt khi tự động gửi SMS. Tuy nhiên, việc kiểm tra số điện thoại của mỗi quốc gia có thể trở nên tẻ nhạt. Trong trường hợp này, bạn sẽ tách mã quốc gia hay bạn sẽ hợp nhất nó thành một cột đơn và xử lý nó ở đó?

+1

Bạn có đang cố gắng lưu trữ số điện thoại không? Hoặc địa chỉ nhắn tin? Tiêu đề câu hỏi có vẻ đơn giản nhưng sau đó bạn nói về phân phối txt qua e-mail. Câu hỏi thực tế là gì? – ahockley

Trả lời

6

Tôi không biết nếu bạn đã đọc hai câu hỏi này, nhưng chúng có thể giúp bạn một chút.

Có lẽ nó sẽ là khôn ngoan để lưu trữ các loại số (điện thoại cố định, di động, fax) và/hoặc những thông điệp có thể được nhận vào nó (giọng nói, văn bản , email). Lưu ý rằng ở Hoa Kỳ, bạn cũng có thể gửi tin nhắn văn bản tới điện thoại qua email, nhưng tôi tin rằng điều đó phụ thuộc vào nhà cung cấp dịch vụ.

13

Nói chung là văn bản, bạn không cần tất cả định dạng ưa thích, trừ khi bạn cần nó để phân tích cú pháp số từ các quốc gia khác nhau mà bạn không thể phân biệt được. Bạn luôn có thể thêm định dạng sau này.

Không phải là số !!! Các số 0 ở đầu có thể có vấn đề.

+0

Chắc chắn. Việc tước các số 0 đứng đầu cho IntegerField đã khiến tôi hơi đau đớn trước đây. – ayaz

26

Tôi chủ yếu sẽ sử dụng trường văn bản hoặc một loạt trường văn bản, ngay cả khi bạn đang sử dụng số điện thoại bằng số vì những lý do sau.

  1. Số điện thoại có phạm vi giá trị lớn, bao gồm số tiện ích có thể dẫn đến các cột số mất chính xác.
  2. Mất độ chính xác trong số điện thoại khá tệ.
  3. Không có lý do hợp lý nào để muốn thực hiện phép toán (cộng/nhân) trên một số điện thoại.

Ngoài ra, bạn có thể muốn chỉ định cách bạn đang sử dụng dữ liệu này. Nếu bạn đang lập kế hoạch một dịch vụ nhắn tin tự động, bạn sẽ cần một loạt các đại lý chuyển tiếp để phát sóng thông qua, vì vậy bạn cũng có thể thêm một định danh liên quan đến việc chuyển tiếp các thông tin liên quan đến. Sau đó, tất cả những gì bạn phải lo lắng là các tác nhân chuyển tiếp có thể hiểu nội dung trong các trường văn bản.

+1

Mặc dù tôi vẫn lưu trữ dưới dạng chuỗi, bạn có thể loại bỏ 1 & 2 (chỉ thực sự là 1 điểm) với số điểm cố định. – umassthrower

+1

@umassthrower trừ khi bạn đang sử dụng Excel và làm việc với các tệp csv. Nhưng nếu bạn đang làm điều đó, giải pháp cho vấn đề đó là "ngừng sử dụng excel ở tất cả". –

+0

Chỉ là một chú thích đáng chú ý mà tôi thấy trong hàng đợi đánh giá của tôi về bài đăng này: > Tuy nhiên, cần lưu ý rằng thực hiện bất kỳ hàm tổng hợp nào, tức là SUM của số điện thoại được lưu trữ trong cơ sở dữ liệu, là MUCH chậm hơn trên trường CHAR so với INTEGER. Do đó, chúng tôi khuyên bạn nên bao gồm cột nhận dạng mà bạn có thể sử dụng để tính để báo cáo.) Cảm ơn. –

Các vấn đề liên quan