Является ли наилучшей практикой хранение перечислений в базе данных как формы документации? - PullRequest
0 голосов
/ 26 июля 2011

У меня есть перечисление в коде

enum EventType
{
     Run = 1,
     Stop = 2,
}

У меня есть таблица в моей базе данных

CREATE TABLE [Event] (
    [Id] integer PRIMARY KEY AUTOINCREMENT,
    [EventType] integer NOT NULL,
    [Timestamp] text NOT NULL
);

Должен ли я, если мне действительно не нужно?

CREATE TABLE [EventType] (
    [EventTypeId] integer PRIMARY KEY AUTOINCREMENT,
    [Name] text
);
INSERT INTO "EventType" VALUES(1, "Run");
INSERT INTO "EventType" VALUES(2, "Stop");

Это плохо, потому что это дублирование кода. Это хорошо, потому что это документация для тех, кто обращается к базе данных и интересуется, что означают эти числа EventType. Стоит ли вообще отбрасывать эти числа и использовать вместо них строки?

1 Ответ

1 голос
/ 26 июля 2011

Я бы не стал создавать дополнительные таблицы только для того, чтобы документировать вещи.Это увеличивает общую сложность и, следовательно, делает ее хуже в долгосрочной перспективе, чем когда пользователи задаются вопросом, что это за цифры.

Лично мне нравится использовать строковые перечисления в БД именно потому, что это делает самодокументирование.Хотя могут быть разные мнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...