2016-11-20 6 views
2

Im new в SQL (все еще используется). Я пытаюсь создать реляционную базу данных для места проведения мероприятия. У меня есть атрибут, который хранит зарезервированную комнату. Тип данных - ENUM. Моя проблема в том, что мне нужны мои значения ENUM (например: Main room) для хранения значений int. В каждом номере есть место для сидения и вместительность. Я не должен вставлять его в свой стол каждый раз, когда кто-то зарезервировал для комнаты. Но, в конце концов, я должен уметь спросить, сколько людей может держать комнату. Возможно ли это? Я ничего не видел о переноске переменной на intenet.Хранить переменную с величиной Enum

ответ

2

Если вы обучения дизайн базы данных, держитесь подальше от перечислений. Они существенно нарушают нормализацию, что иногда может быть решением конкретной проблемы, но не то, что вы должны использовать, все еще пытаясь понять концепции. Вы должны использовать правильно нормированную модель с отношением «один ко многим».

Как вам нужно хранить дополнительную информацию в типе комнаты, в перечислении не может быть и речи, это не то, что перечислены (и вы не можете этого сделать).

Чистая модель будет что-то вроде этого:

create table room_type 
(
    type_id integer primary key, 
    name varchar not null unique, 
    max_capacity_seats integer not null, 
    max_capacity_standing integer not null 
); 

create table room 
(
    room_id integer primary key, 
    room_type_id integer not null references room_type, 
    description varchar, 
    ... other columns ... 
); 
Смежные вопросы