Лучше ли кэшировать значение в столбце или запросить другую таблицу [duplicate]

Ваша строка подключения открыта. Вы можете использовать код для проверки:

if(cmd.Connection.State != ConnectionState.Open) cmd.Connection.Open();
1
задан philipxy 31 July 2017 в 12:06
поделиться

1 ответ

Это нормально. Это, в конечном счете, кеширование: кодирование штата избыточно, чтобы принести пользу некоторым образцам использования за счет других. Конечно, это также сложность.

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

(Иногда избыточные проекты (в том числе такие, как ваши) называются «денормализованными», когда они фактически не являются результатом денормализации, а избыточность не является видом, который вызывает денормализацию или нормализация. Зависимость / ограничение кросс-таблицы в SQL-базе данных В самом деле, можно было бы разумно описать ваш случай как нормализацию без сохранения FD (функциональных зависимостей). Начните с таблицы с другими id и другими столбцами пользователя ratings (отношение) и его counter. Тогда ratings функционально определяет counter, поскольку counter = select count(*) from ratings. Разделите user и т. д. + counter, то есть таблицы User и user + ratings, который негруппируется в таблицу Rating.)


Есть ли у вас предложение относительно лучшего термина, используемого при работе с этим

Частый комментарий от меня: Google много ясных, лаконичных и amp; специфические фразы вашего вопроса / проблемы / цели / желания с различными подмножествами терминов & amp; теги, которые вы можете обнаружить с помощью & amp; без ваших конкретных имен (переменных / баз данных / таблиц / столбцов / ограничений / и т. д.). Например, «когда я могу хранить (сумма ИЛИ сумма) избыточно в базе данных». Человеческая фразировка, а не только ключевые слова, похоже, помогает. Ваша лучшая ставка может быть направлена ​​на оптимизацию дизайна баз данных SQL для производительности. Есть целые книги («amazon isbn»), некоторые онлайн («pdf»). (Но, возможно, чаще всего запросы). Изучите методы, относящиеся к складированию, поскольку база данных OLTP выступает в качестве входного буфера для базы данных OLAP и использует SQL с большими данными. (Например, планирование моментальных снимков.)

PS Мое звание этого «кэширования» (так что tag ) является (типичным для меня) довольно абстрактным, до того момента, шутит, что все в CS кэшируется. (Googling ... «В« Компьютерной науке »есть только две трудные проблемы: кэш-аннулирование и именование вещей». - Фил Карлтон.) (Добро пожаловать в оба.)

1
ответ дан philipxy 16 August 2018 в 00:47
поделиться
  • 1
    Я отредактировал, чтобы объяснить, как ваш случай «нормализуется», не сохраняя FD ». (Также перемещены комментарии в постскриптум.) – philipxy 2 August 2017 в 22:19
Другие вопросы по тегам:

Похожие вопросы: