Лучший способ сделать это - создать отдельную таблицу, содержащую доступное состояние, а затем внедрить внешний ключ между отношением trucks
и отношением status
:
CREATE TABLE status (
id INT NOT NULL PRIMARY KEY,
description VARCHAR(32)
);
CREATE TABLE trucks (
id INT NOT NULL PRIMARY KEY,
status_id INT NOT NULL,
INDEX idx_status_id (status_id),
FOREIGN KEY (status_id)
REFERENCES status(id)
);
Некоторые людисказал бы использовать ENUM тип.Однако я (и многие другие администраторы баз данных, с которыми я работал) лично ненавижу тип ENUM.Используя ENUM, вы перемещаете данные из тех мест, где они находятся, в метаданные таблицы, обновление списка является очень дорогой операцией, трудно получить все доступные значения из вашего приложения, вы не можете хранить дополнительную информацию с ним и т. Д.