@Yugran

Какая структура БД для хранения телефонов людей и компаний?

Есть таблица контактов для людей и таблица контактов для компаний.
У человека может быть несколько телефонов
У компании может быть несколько телефонов
У одного телефона может быть только один владелец - человек или компания.
Какую структуру для этой задачи лучше создать? Как связать таблицы телефонов и контактов?

Нашел похожий вопрос Как хранить телефоны в базе данных?
Для людей отдельная таблица с телефонами, для компаний отдельная таблица с телефонами? Какие еще есть варианты? Или это оптимальный вариант?
  • Вопрос задан
  • 253 просмотра
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Вопросы по физической модели:
  • У телефона владелец. А разговаривать вы будете с человеком? На одном квартирном телефоне несколько человек.
  • У компании есть голос? Или вы будете разговаривать с человеком?


По физической модели можно предложить:
Диаграмма
5c78298a91816782867472.png
SELECT Company.Name AS CompanyName, 
       Person.Name AS PersonName, 
       PhoneStorage.Description, 
       Phone.Number, 
       Phone.Description AS PhoneDescription
  FROM PhoneStorage 
    INNER JOIN Phone ON PhoneStorage.Phone = Phone.ID 
    LEFT OUTER JOIN Person ON PhoneStorage.Person = Person.ID 
    LEFT OUTER JOIN Company ON PhoneStorage.Company = Company.ID
  ORDER BY Phone.Number, PersonName
5c78bfdd1ea5a524322008.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы