2015-08-22 2 views
-1

Я пишу схему БД для своего приложения. Пользователи приложения имеют уникальный номер телефона. Каждый пользователь может иметь несколько контактов. Я сделал таблицу user_contact для сопоставления между пользователем и контактами. контакт сам по себе пользователь. Теперь я узнал, что каждый контакт может иметь несколько телефонных номеров. Теперь я думаю, как это будет управляться в БД. Нужна ли мне новая таблица? P.S. мы используем базу данных mysql с java 8.Дизайн базы данных для пользователей и контактов

+0

как насчет таблицы людей. каждый человек может быть типом (пользователем или контактом). то каждый человек может иметь номера телефонов. хотите увидеть это в ответе? – Drew

+0

Как написано, ваш вопрос неясен: что вы имеете в виду, когда говорите, что «контакт сам по себе является пользователем?» Какова цель «контакта»? Вы посыпали свой вопрос небольшим количеством решений и немного требований, но было бы легче ответить, если бы вы четко заявили о своих целях и требованиях (почему я делаю это/что мне нужно) отдельно от вашего предыдущие попытки. – skeggse

+0

@skeggse Позвольте мне попытаться сделать это более понятным: это приложение для Android, в котором пользователь может зарегистрироваться с использованием своего номера телефона. Вэнь пользователь регистрируется, его мобильные контакты вытягиваются приложением и сохраняются в БД. Однако может быть контакт с несколькими телефонными номерами. Итак, как плохо его поддерживать в БД. Позже этот контакт также может зарегистрироваться в нашем приложении, используя любой номер мобильного телефона. Мне нужна схема проектирования DB для него. – gaurav

ответ

0

Могут быть разные способы. Если вы предполагаете, что для каждого контакта будут ограничены номера телефонов, вы можете добавить несколько полей по одному для каждого номера телефона, например. PhoneNo1, PhoneNo2, PhoneNo3.

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

Я предлагаю первое решение, как его обычно реализуют, например, номер дома № офиса и т. Д. В каждом поле

+0

Спасибо за ответ. Однако проблема заключается в уникальности пользователя - это номер телефона. И давайте предположим, теперь контакт пытается зарегистрироваться в приложении, используя любой из телефонных номеров. Тогда как это будет управляться в БД? – gaurav

+0

Вам нужно реализовать второй вариант, когда пользователь регистрируется, добавляет запись в user_contact, а затем в contact_phoneNo также в одно и то же время. Поддерживайте уникальность в поле PhoneNo и проверяйте, есть ли у пользователя номер зарегистрированного телефона. –

Смежные вопросы