(с SQL Server 2008) У меня есть большая таблица (~ 50M записей), которая полностью нормализована.Существует 4 основных столбца, и в одном из них есть только три возможные записи - A, B и C. Проблема в том, что часто существует большая избыточность для этого столбца.То есть может быть много записей со значением A, а затем много повторяющихся записей, которые идентичны во всех отношениях, за исключением значения B (и / или C).Такое резервирование не всегда происходит, но достаточно часто, чтобы значительно увеличить количество записей, и я хочу от него избавиться.
Моя идея состоит в том, что вместо A, B, C можно выбирать столбец,Я думал о создании 3-битных столбцов с названиями A, B, C. Затем, в случае вышеупомянутых избыточностей для этих значений, мне не нужно создавать повторяющиеся записи, а вместо этого просто иметь одну запись и затем отмечать A,B и / или C столбцы по мере необходимости.
Это кажется неортодоксальным, поэтому я подумал, что увижу, что думают эксперты.Одна вещь состоит в том, что для этой таблицы будет три разных ограничения уникальности, каждое из которых включает в себя все остальные первичные ключи плюс один из трех столбцов флага.один из других PK - это столбец даты.Так, например, может быть 1000 записей разных дат с записью A, а затем еще 1000 записей с теми же датами (и другие идентичные столбцы), но с записью B. Таким образом, даже при наличии только трех вариантов все еще может быть многоизбыточности.