Мне нужно хранить несколько адресов электронной почты для каждого пользователя в MySQL и нормализовать его. Письма могут быть для работы, личного и т.д. Даже несколько рабочих писем или любой другой могут быть связаны с одним контактом.
Моя идея состоит в том, чтобы иметь 3 таблицы, одну для хранения типов электронных писем, другую для хранения адресов контактной информации и т.д., а третью - для хранения ассоциаций электронной почты и контактов, называемых контактными адресами, которые имеют pk из таблицы email_types и контактов
Простую диаграмму можно увидеть здесь https://bubbl.us/?h=a7f3b/13e72f/68J/1dgjeYVbs Это вообще эффективно? Таким образом, один контакт может иметь любое количество адресов электронной почты, хранящихся и сохраненных вне таблицы контактов.
Спасибо
Да, ваш дизайн в порядке. Он представляет собой обычную, нормализованную модель данных адреса электронной почты.
Вот как я это сделаю. Я думаю, что ваш дизайн в порядке.
да, вы также можете использовать составной ключ (с использованием первичного или уникального индекса) в таблице contact_emails, используя contact_id и email_type_id. Таким образом, у одного контакта будет только одно электронное письмо определенного типа. без индекса, пользователь может сохранить 1+ писем от одного и того же типа электронной почты.