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

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

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

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 21 сентября 2011

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

2 голосов
/ 21 сентября 2011

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

1 голос
/ 21 сентября 2011

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

...