Дизайн базы данных адресной книги: денормализовать?

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

В моей текущей настройке у меня есть Контакт, с адресами, телефонными номерами, электронной почтой и организациями. Все свойства контактов в настоящее время представляют собой отдельные таблицы с fk для таблицы контактов. Излишне говорить, что у контакта может быть любое количество этих свойств.

Теперь я обнаруживаю, что объединяю все эти таблицы вместе, если хочу прочитать контакты в приложении. Поскольку для связанных таблиц не выполняются фильтры, обратный поиск, сортировка и т. Д., Не лучше ли просто сохранить связанные поля в виде списков с кодировкой json в прямых свойствах таблицы контактов?

Например, вместо контакта с fk к таблице телефонных номеров с 3 записями, просто закодировать все телефонные номера и сохранить их в поле таблицы контактов?

Любая информация действительно ценится! (к вашему сведению, я использую Django, хотя это на самом деле не имеет значения)

6
задан Dick 23 December 2010 в 00:29
поделиться