Я разрабатываю пользовательские настройки для моего приложения MVC, и сейчас у меня есть ~ 20 логических параметров, которые пользователь может переключить. Поскольку каждый пользователь всегда будет иметь все настройки, я думал о сохранении каждого параметра в качестве логического в таблице User. Хотя это будет громоздким по мере роста требований приложения.
Первый вопрос - есть ли что-то не так, если в этой ситуации есть тонна столбцов на столе?
Затем я рассмотрел использование флагов и сохранил настройки как один бит в массиве:
[Flags]
public enum Settings
{
WantsEmail = 1,
WantsNotifications = 2,
SharesProfile = 4,
EatsLasagna = 8
}
И тогда каждый пользователь будет иметь один столбец "Настройки" в своей строке "Пользователь", который хранит значение 2 ^ 20, если есть 20 настроек.
Я бы использовал это, чтобы направлять свои усилия: Что означает атрибут Enum [Flags] Enum в С#?
Это лучше, чем прежний подход? Любые предложения приветствуются.