@lookingfor2

Лучше использовать целое число или строку для индикатора состояния данных?

Предположим, у меня есть статусы:
TransactionStatus {
COMPLETED,
REJECTED,
DRAFT,
}

Когда я сохраняю статус как флаг у записи, должен ли я хранить его в виде строки, чтобы я мог легко понять, какой именно это статус или более эффективно когда они будут в виде целых чисел?
Мне кажется, что при запросе и анализе данных, сопоставление двух числовых значений будет быстрее, чем сопоставление двух строк(особенно в utf-8).

Как это все отразится на масштабировании? При переносе, разделении и тд, базы данных?
Если использовать второй вариант с числами, стоит ли хранить дополнительно в таблице сопоставление чисел и статусов строкой?

PS я знаю про enum, на данные момент не хочется его использовать
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@alexalexes
Если не хотите фильдеперсовый enum, то делайте как должно быть по классике построения реляционных баз данных.
Делаете таблицу справочник TransactionStatus, перечисляете там все состояния, с использованием id состояния. И этим id ссылаетесь на этот справочник в таблицах, где используется состояние, как внешний ключ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы