1

Я делаю базу данных сотрудников. Мне нужно обращаться с сотрудниками, которые отделены от компании. Должен ли я настроить запрос с помощью макроса для отправки отдельных сотрудников в отдельную таблицу, или b. просто добавить в единую таблицу флаг, обозначающий разделение?

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

2 ответа2

0

Вот для чего нужны взгляды.

Используйте одну таблицу с флагом, затем создайте 2 представления - одно для набора флагов и одно для неустановленного флага. Представления не должны содержать сам флаг - только столбцы, которые вам действительно нужны для этого подмножества данных.

Таким образом вы получаете простоту использования отдельных таблиц с оптимизацией одной таблицы.

Вот учебник, который поможет вам начать работу с представлениями.

0

ПРИМЕЧАНИЕ. Кажется, вы можете создавать индексы для представлений. Это придало бы вес одной таблице и двум представлениям.

Это вопрос производительности в сравнении с правильностью отношений. Самый "чистый" способ сделать это - один стол. Тем не менее, две таблицы должны работать лучше в большинстве ситуаций. Даже если все ваши запросы к многозначному индексу в этой таблице начинаются с бокового флага, запросы к одной из двух меньших таблиц будут выполняться быстрее. Это потому, что ваши индексы будут содержать еще одно поле и больше записей (более широкий и длинный индекс).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .