Я нашел эту ветку, которая несколько помогает моему пониманию, но не отвечает на мой вопрос:
SQL: использование значений NULL и значений по умолчанию
Мой вопрос:Если я создаю схему (в базе данных MS Access), которая предназначена для хранения контактной информации для сотрудников, было бы лучше иметь одну таблицу для телефонных номеров, затем одну таблицу для адресов, а затем еще одну таблицу для адресов электронной почты.ИЛИ было бы лучше иметь одну таблицу, в которой хранятся все эти записи, но могут иметь значения NULL для нескольких полей в более чем половине записей?
Я хотел бы хранить различные элементыадреса улицы в отдельные поля: для адресов: одно поле для номера улицы и названия, одно для города, одно для штата, одно для страны, одно для почтового индекса, а такжеодин для любого другого имени для адреса ("ATTN:" или подобный), и возможно больше; Для телефонных номеров: по существу один для имени и один для номера; Для электронной почты: по существу совпадает с телефоном - имя и номер.Это оставило бы многие значения NULL / Blank в списке для телефонных номеров ... фактически, я бы предположил, что, вероятно, 70% записей будут иметь 5 или более нулевых значений в масштабе от 5000 до 10000 записей.
Я бы хотел иметь возможность отображать их как в отдельных списках, так и в объединенном списке, отфильтрованном и сгруппированном.Любая структура может поддержать это (через предложения JOINS / UNIONS и WHERE).С точки зрения простоты структуры таблицы, один список может показаться очевидным - ОДНА таблица «аккуратнее», чем три или более таблиц.
Ответ, как мне кажется, должен зависеть от эффективности «хранения» потенциально десятков тысяч значений NULL по сравнению с эффективностью индексации различных таблиц и потраченного времени на то, чтобы объединить UNIONс типами данных и созданием различных других методов для объединения данных, которые уже имеют отношение к SOMEWHAT.
Надеюсь, я достаточно ясно изложил свои мысли!Я приветствую ссылки, ответы и комментарии, а также вопросы.