У меня был этот вопрос, когда мне задали задачу, которая заставила меня задуматься. Но не в состоянии придумать более точный или удовлетворительный ответ.
Задачи был что-то вроде этого,
вещей у меня уже естьЧто важнее скорость (время) или пробел
- стола «Пользователь», которые содержат сведения о пользователе. Как createdTime, тип (агент, администратор, другой), идентификатор и т.д.. (Эта таблица содержит слишком много строк (записи) в ней)
Задача, для меня это
- создайте новую таблицу, которая будет отслеживать пользователя, который удаляется.
- Затем присоединитесь к таблице «Пользователь» с этой вновь созданной таблицей и покажите пользователю, который еще не удален и имеет тип = «агент».
Теперь мой вопрос
- «почему они просят меня, чтобы создать новую таблицу вместо того, чтобы создать новый столбец (в таблице User), который будет хранить флаг (правда, если пользователь удаляется, а не удаляется).
- «Соединяем много времени?»
- (создание нового столбца в текущей таблице «Пользователь» поможет сохранить деталь неповрежденной с пользователем. Но создание новой таблицы - где это поможет?)
Когда я задал этот вопрос к моему члену команды, он ответил «Если вы создаете новый столбец, значение может быть пустым множеством строк, и пространство потерь» (то, что сказал, что он прав слишком .)
Это говорит о том, что он все больше и больше заботится о пространстве во время запроса.
В настоящее время мы можем получить любое количество пространства с деньгами, но скорость важнее. Если скорость меньше, то какая польза от чего-то, что экономит дисковое пространство.
Разве мы не должны заботиться о времени больше и пространстве меньше ?.
Я хотел бы знать, что вы думаете об этом. Что для вас важнее и почему ?.
Я знаю, что этот вопрос может быть пропущен, но я хотел знать, что думают большинство разработчиков в таком случае. Чем они больше заботятся, это пространство или время?
Спасибо за ваше время.
Перемещение к дизайну с таким флагом не влияет на нормализацию как таковую. Таблицы отличаются друг от друга, поэтому запросы и ограничения отличаются для тех же результатов и целостности. Например, FK в таблицу удаленных идентификаторов становится FK плюс CHECK, который флаг указывает на удаление; но запрос для удаленных идентификаторов теперь не нуждается в ГДЕ на флаге. Такое изменение не оказывает особого влияния на нормализацию базовых таблиц. Поэтому «денормализованный» не является подходящим словом/понятием. Это означает что-то еще. То, что вы имеете в виду, - это значения, не являющиеся прямолинейными таблицами, с учетом различий (подтипов супертипа), важных в этом приложении ». – philipxy