Как создать СУХОЙ рабочий процесс для связи телефонных номеров с пользователями - PullRequest
1 голос
/ 20 апреля 2010

Так что в основном я работаю с базой данных, полной телефонных номеров.

если я получу одного из этих пользователей из этой телефонной базы данных и они зарегистрируются на моем веб-сайте, я хочу автоматически связать номер из уже существующей базы данных, как бы я мог связать эти две таблицы вместе, как только пользователь подпишет до

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Предполагая, что у вас есть таблица телефонных номеров и таблица пользователей, вам необходимо хранить первичные ключи обеих таблиц вместе

Вы можете сделать это:

  • В пользовательской таблице, но тогда вы сможете связать только один номер телефона с пользователем (и позже, если вам придется добавить более одного телефона, вы можете в конечном итоге добавить такие поля, как phone_number_1, phone_number_2 и т. что довольно ужасно)
  • В таблице телефонных номеров, но тогда вы сможете связать только одного пользователя с номером телефона (может возникнуть та же проблема, что и в первом пункте)
  • В отдельной таблице, но тогда вам придется использовать соединение каждый раз, когда вам нужно получить номер пользователя или номер телефона

Правильный выбор зависит от отношений между данными, которые вы пытаетесь смоделировать.

0 голосов
/ 20 апреля 2010

Итак, база данных будет структурирована с использованием композиции. Сохраните таблицу 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, используя таблицу составления, как указано выше.

Это немного ближе?

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...