MySQL'de telefon numarası için en iyi veri türü hangisidir ve bunun için Java türü eşlemesi ne olmalıdır?

Web uygulamam için Spring JDBC şablonu ile MySQL kullanıyorum. Telefon numarasını sadece rakamlarla (10) saklamam gerekiyor. Veri türünü kullanma konusunda biraz kafam karıştı.

  1. MySQL'de bunun için tercih edilen veri türü nedir?
  2. Bunun için Bean (POJO) sınıflarında Java veri türü ne olmalıdır?
  3. Bu veri türünü javax doğrulamaları/kısıtlamaları ile uzunluk ve ayrıca yalnızca izin verilen rakam için nasıl doğrulayabilirim?

Strings & VARCHAR.

  • Telefon numaralarını gerçek numaralar olarak saklamayı denemeyin. biçimlendirmeyi bozacak, önceki 0ları ve diğer istenmeyen şeyleri kaldıracaktır.

  • İsterseniz, kullanıcı girdilerini yalnızca sayısal değerlerle sınırlayabilirsiniz, ancak bu durumda bile, yedeklenen kalıcı verilerinizi sayılar değil karakterler/dizeler olarak tutun.

  • Herhangi bir uzunluk kısıtlaması, doğrulama veya maske (örneğin XXX-XXXX-XX) uygulamaya çalışmadan önce daha geniş dünyanın ve sayı uzunluklarının ve biçimlendirmelerinin nasıl farklılık gösterdiğinin farkında olun.

  • Sayısal olmayan karakterler telefon numaralarında geçerli olabilir. Uluslararası bir numaranın başında 00 yerine + kullanılması buna en iyi örnektir.

Yorumlardaki konuşmalardan düzenlenmiştir:

  • Telefon numaralarının sayısal değerlerle bir ilgisi olması en büyük kullanıcı arayüzü hatalarından biridir. Onları adresler gibi düşünmek ve ele almak çok daha iyidir, gerçekte ne olduklarına ve temsil ettiklerine telefon "numaralarından" daha yakındır.
Yorumlar (8)

Muhtemelen 15-20 uzunluğunda VARCHAR yeterli olacaktır ve veritabanı için en iyi seçenek olacaktır. Muhtemelen telefon numaralarınızla birlikte çeşitli tire ve artı işaretlerine ihtiyaç duyacağınız için.

Yorumlar (0)