2

Надеюсь, я не задаю здесь слишком острый вопрос.Каковы компромиссы при денормализации для вычисленного столбца?

Для моего текущего проекта я проектирую относительно простую базу данных с использованием SQL Server 2008. Для одной из таблиц я решил ввести «Вычисленный столбец» (не сохранялся). Его выражение просто является произведением двух других числовых столбцов, и единственной причиной его существования является удобство (я делаю привязку к одной веб-странице с односторонним обращением).

Я понял, однако, что использование вычисленного столбца нарушает первую нормальную форму. Это заставило меня задуматься: Ват - это компромиссы? Если моя единственная причина для вычисляемого столбца - это удобство, оно перевешивает денормализацию?

+4

Очевидно, что имеется небольшая дополнительная нагрузка ЦП в базе данных Сервер расчета того, что может быть рассчитано на другом уровне, и небольшое добавление сетевого трафика, возвращая дополнительный столбец. Если он не сохраняется, для операций CUD нет дополнительных накладных расходов, и он не занимает места на диске, поэтому никаких дополнительных операций ввода-вывода не будет. – 2010-11-30 15:41:00

+0

Таблица SQL находится в 1NF, если она содержит хотя бы один ключ, имеет уникальные имена столбцов, и все столбцы не имеют значения NULL. Устойчивый или нет, вычисленный столбец не нарушает 1NF – sqlvogel 2010-12-01 18:07:07

ответ

1

«использование вычисленного столбца нарушает первую нормальную форму»: совсем нет! Он не хранится, он пересчитывается с использованием последних данных за все время. Таким образом, это отличное решение, точно так же, как наличие расчетной колонки в представлении.

0

Его выражение просто продукт 2 других числовых столбцов и его единственной причиной существования удобство (я делаю некоторые одностороннюю привязки данных к веб-странице).

Затем введите расчет в инструкцию SELECT, а не в базу данных.

Смежные вопросы