Я просматривал дампы SQL некоторых известных CMS, включая Drupal 7, Wordpress (довольно старая версия) и некоторые пользовательские приложения, основанные на Python.
Все эти дампы содержали данные со строковыми флагами вместо целочисленных. Например, статус на должность был представлен как published, closedили inheritвместо 1, 2или 3.
У меня довольно ограниченный опыт проектирования баз данных, и я никогда не проходил мимо простых SQL, но меня всегда учили, что я должен использовать числовые / целочисленные флаги для таких данных. Очевидно, что она занимает tinyintгораздо меньше места в базе данных, чем, например varchar(9),.
Так чего мне не хватает? Разве это не пустая трата данных и избыточность данных? Разве просмотр, поиск и индексирование не были бы немного быстрее, если бы в этих столбцах использовались целые числа вместо строк?
chars? Как неэффективно!» устарел по сравнению с 2015 годом.