Правильное хранение номера телефона

Главные вкладки

Аватар пользователя furamag furamag 5 декабря 2012 в 8:08

​Дано:
Есть магазин по пополнению счёта мобильного телефона. Все телефоны пользователя хранятся у него в профайле (модуль Content Profile). У двух разных пользователей может быть один и тот же телефон в профайле.

Что нужно сделать:
Нужно сделать два типа подписок для телефонов в профайле. Чтобы пользователь мог поставить галочку рядом с номером телефона в профайле и, таким образом, номер был отмечен как подписанный на данную услугу. Это будет реализовано созданием двух таблиц, где будут сохранятся информация о подписке и телефоне. Интерфейс для привязки подписки к телефону - не проблема.

Вопрос:
Со стороны базы данных, при сохранении связей между подписками и телефонами, хорошо было бы использовать уникальный идентификатор телефона, а не сам телефон (телефон - 9 знаков и тоже может служить идентификатором). В этом случае, телефоны нужно хранить в отдельной таблице и присваивать каждому из них уникальные идентификаторы. Но в этом случаем, мне нужно будет создать новый тип поля и хранить его значения особым образом (в одной таблице и с уникальными идентификаторами). Я очень не люблю создавать новые типы полей. Постоянно с этим проблемы. Есть ли какой-то уже реализованный в Drupal способ, который позволит хранить список телефонов с уникальными идентификаторами в отдельной таблице в поле сохраняя только уникальный идентификатор телефона.

Возможное решение:
Именно так работают теги в Друпале. При создании нового тега, если он повторяется, то он не создаётся заново, а просто в поле прописывается идентификатор уже существующего. Мне нужно только сделать функцию валидации и отключить автозаполнение (чтобы пользователи не могли видеть телефоны из соседних аккунтов). Оптимальное ли это решение?