Это была бы плохая идея, она не только не имеет преимуществ с точки зрения используемого пространства, но также плохо влияет на производительность запросов и понятность вашей модели данных.
Дисковое пространство
С точки зрения использования хранилища не имеет значения, хранятся ли данные в одном столбце varchar(n)
или char(n)
или в нескольких tinynt
, char(1)
или bit(1)
столбцы.Только при использовании varchar
вам потребуется от 1 до 2 байт дискового пространства на каждую запись.
Для получения дополнительной информации о требованиях к хранилищу для различных типов данных см. Документацию MySql .
Производительность запроса
Если бы логические значения были сохранены в VarChar
, поиск всех записей, для которых определенное значение равно True, занял бы гораздо больше времени, поскольку строковые операциинеобходимо будет найти правильные записи.Даже при поиске комбинации логических значений, таких как «TFTFTFTFTT», запрос все равно займет больше времени, чем если бы логические значения хранились в отдельных столбцах.Кроме того, вы можете назначать индексы отдельным столбцам, таким как isFoo или isBar, что оказывает большое положительное влияние на производительность запросов.
Модель данных
Модель данных должна быть максимально понятнойнасколько возможно и, если возможно, независимо от каких-либо соображений реализации.