Как хранить несколько рабочих писем, личных и т. Д. Для одного контакта в MySQL

0

Мне нужно хранить несколько адресов электронной почты для каждого пользователя в MySQL и нормализовать его. Письма могут быть для работы, личного и т.д. Даже несколько рабочих писем или любой другой могут быть связаны с одним контактом.

Моя идея состоит в том, чтобы иметь 3 таблицы, одну для хранения типов электронных писем, другую для хранения адресов контактной информации и т.д., а третью - для хранения ассоциаций электронной почты и контактов, называемых контактными адресами, которые имеют pk из таблицы email_types и контактов

Простую диаграмму можно увидеть здесь https://bubbl.us/?h=a7f3b/13e72f/68J/1dgjeYVbs Это вообще эффективно? Таким образом, один контакт может иметь любое количество адресов электронной почты, хранящихся и сохраненных вне таблицы контактов.

Спасибо

Теги:
database-design
normalization

3 ответа

3

Да, ваш дизайн в порядке. Он представляет собой обычную, нормализованную модель данных адреса электронной почты.

2

Вот как я это сделаю. Я думаю, что ваш дизайн в порядке.

1

да, вы также можете использовать составной ключ (с использованием первичного или уникального индекса) в таблице contact_emails, используя contact_id и email_type_id. Таким образом, у одного контакта будет только одно электронное письмо определенного типа. без индекса, пользователь может сохранить 1+ писем от одного и того же типа электронной почты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню