Итак, база данных будет структурирована с использованием композиции. Сохраните таблицу phone_numbers
с phone_number_id
, таблицу users
с user_id
, а затем таблицу customer_phone_numbers
, которая отображает user_ids на phone_number_ids. Тогда ваш PHP-код будет делать что-то вроде этого:
<?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
РЕДАКТИРОВАТЬ: Судя по вашим отзывам, это не так похоже на то, что вы просто ищете способ связать данные. Если я вас правильно понимаю, пользователь зарегистрируется на вашем сайте через телефон, а затем зарегистрируется на сайте. Вы хотите объединить две регистрации, когда это произойдет.
Создают ли пользователи полный профиль со своего телефона? Есть ли у вас процесс проверки того, что номер телефона, предоставленный пользователем, действительно принадлежит им?
Если пользователь не создает полный профиль по телефону, звучит так, как будто бы хранятся два типа «профилей», полный профиль веб-сайта и профиль телефона. Таким образом, у вас будет профиль телефона с phone_profile_id
и запись обычного пользователя с user_id
. Затем пусть пользователи проверяют свои телефонные данные и связывают их с phone_profile_id
, используя таблицу составления, как указано выше.
Это немного ближе?
Спасибо,
Джо