Мне нужно хранить 5 логических значений в 1 таблице.Каждое значение может быть сохранено как tinyint (4).Итак, есть 5 крошечных (4).Я собираюсь поместить 5 логических значений в один tinyint (4).Я думаю, что все знают даже лучше, чем я, 5 бит могут быть сохранены в 1 байт без проблем :) Первое значение может быть сохранено как 0 (false) или 1 (true), второе как 0 (false) или 2 (true), третий - 0 или 4, четвертый - 0 или 8, пятый - 0 или 16. Итак, если мы храним сумму этих значений в tinyint (4), мы точно знаем 5 логических значений.
For example, stored 21 -> 16 + 4+1.
So, if 21 is stored, we know that:
Fifth=true
Fourth=false
Third=true
Second=false
First=true.
Мой вопрос: имеет ли смысл хранить только 1 переменную?Мы выигрываем объем в ДБ (в байтах) и производительность (на 4 столбца меньше, но это всего 4 байта, тогда как вы фактически использовали varchar (1000) в той же таблице), но каждый раз нам приходится «извлекать» правильное логическое значение из «суммыmsgstr "используя функцию php, и это часто случается (скажем, когда пользователь нажимает кнопку).Имеет ли смысл хранить логические значения в виде суммы в 1 столбце или нет, поэтому у вас есть 7 столбцов вместо 11?
Эти значения понятны (поскольку в этой таблице гораздо больше строк, чем всего 2), не являются ключами.
Спасибо.