Nasıl kullanıcılar ile telefon numaralarını ilişkilendirmek için bir DRY bir iş akışı oluşturmak

2 Cevap php

Yani temelde ne ile çalışıyorum telefon numaraları dolu bir veritabanı.

Ben bu telefon veritabanından bu kullanıcıların birini almak ve onlar otomatik olarak zaten mevcut veritabanından numarayı ilişkilendirmek istiyorum benim web sitesine kaydolmak eğer, nasıl bir zamanlar birlikte bir kullanıcı işaretleri bu 2 tabloları bağlama hakkında gitmek istiyorsunuz?

2 Cevap

Eğer birlikte her iki tablonun birincil anahtarlarını saklamak için gereken telefon numarası tablosunu ve kullanıcıların tablo var olduğunu varsayarsak

Bunu yapabilirsiniz:

  • Bir kullanıcı tabloda, ama sonra bir kullanıcı için yalnızca bir telefon numarası bağlantı (ve daha sonra bir telefon eklemek zorunda kalacak daha sonra olduğu .. vb phone_number_1, phone_number_2 gibi alanları ekleyerek bitirmek olabilir mümkün olacak Oldukça korkunç)
  • Bir telefon numarası tabloda, ama sonra (aynı sorun noktası tek olarak ortaya çıkabilecek) bir telefon numarası için tek bir kullanıcı bağlantı mümkün olacak
  • Ayrı bir tabloda, ama sonra kullanmak zorunda olacak bir kullanıcı veya telefon numarası almak için gereken her zaman katılmak

Doğru seçim modellemek için çalışıyoruz veri arasındaki ilişkileri bağlıdır.

Yani, veri tabanı bileşimi kullanılarak yapılandırılmış olacaktır. A phone_numbers tablo w / phone_number_id, users tablo w / user_id, ve daha sonra bir customer_phone_numbers tablo Ol bu phone_number_ids için user_ids eşleştirir. Sonra PHP kodu böyle bir şey yapardı:

<?php

$user->save(); // save normal user data
$phoneNumbers = array();
foreach($user->getPhoneNumbers() as $phoneNumber) {
    $phoneId = getPhoneNumberId($phoneNumber); // get the phone number, or save a new record if necessary, and return that number
    $phoneNumbers[] =  $phoneId;
}

$user->savePhoneNumbers( $phoneNumbers ); // adds or removes phone numbers as necessary

EDIT: Sadece veri ilişkilendirmek için bir yol arıyoruz gibi geri bildirimlere dayanarak, o kadar çok gelmiyor. Ben doğru anlamak, kullanıcı daha sonra web sitesine kayıt, kendi telefon aracılığıyla siteniz için imzalayacak. Siz bu durumda iki kayıtları birleştirmek istiyorum.

Kullanıcıların kendi telefonundan tam bir profil oluşturuyorsunuz? Eğer kullanıcı tarafından sağlanan telefon numarası onların aslında olduğunu doğrulamak için yerinde bir süreç var mı?

Kullanıcının telefon üzerinden tam bir profil yaratmak değilse saklanırken "profilleri", tam bir web sitesi profili, ve bir telefon profilinin iki türü vardır gibi geliyor. Bu şekilde, bir telefon profili olurdu w / a phone_profile_id ve düzenli bir kullanıcı kaydı w user_id /. Sonra, kullanıcıların telefon bilgileri doğrulamak ve yukarıdaki gibi bir bileşim tablosunu kullanarak bir phone_profile_id bunları ilişkilendirmek izin.

Biraz daha yakın mı?

Thanks, Joe