Делить ли данные в отдельную таблицу PostgreSQL - PullRequest
0 голосов
/ 02 августа 2010

Я создаю приложение с интерфейсом WPF и базой данных PostgreSQL. Данные включают адреса пациентов и поставщиков. Существует в среднем около 3 контактов на один почтовый адрес. Я оцениваю 10 000 - 15 000 записей контактов в базе данных.

При проектировании структуры базы данных мне пришло в голову, что вместо хранения почтовых адресов в одной таблице «контактов» у меня может быть одна таблица, в которой хранятся имена и другие отдельные данные, а во второй таблице хранятся адреса. Затем я мог бы создать связь между таблицами, чтобы сопоставить адреса с контактами.

У меня есть довольно хорошая идея, как я могу аккуратно организовать ситуации, такие как изменение адреса одного контакта, когда другие контакты остаются по тому же адресу.

Вопрос: стоит ли это того? Можно ли рассчитывать на большую экономию в размере хранилища? Повлияет ли это на скорость запросов рекламодателей? Как насчет того, чтобы использовать что-то другое, кроме PostgreSQL?

Ответы [ 3 ]

1 голос
/ 12 августа 2010

Я бы настоятельно рекомендовал нормализовать это.Вы никогда не знаете, с какими проблемами вы столкнетесь.LedgerSMB имеет относительно приличную схему объекта / пользователя / контакта / местоположения, которая создает очень гибкую среду.Вы можете увидеть это здесь (начинается со строки 363):

http://ledger -smb.svn.sourceforge.net / viewvc / ledger-smb / trunk / sql / Pg-database.sql? Revision= 3042 & вид = разметка

0 голосов
/ 12 августа 2010

Я согласен с Джошуа.После правильной настройки (нормализации) очень легко управлять любыми изменениями в вашем приложении в будущем.

0 голосов
/ 02 августа 2010

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

С точки зрения производительности, свсего 10-15 тыс. записей и правильных индексов, я не могу себе представить, что вы заметите слишком много различий на современном оборудовании (хотя технически отдельная таблица должна быть медленнее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...