2016-11-20 108 views
2

SQL中的新增內容(仍在調整)。 我正嘗試爲場地管理事件創建關係數據庫。 我有一個存儲哪個房間的屬性。 數據類型是ENUM。 我的問題是,我需要我的ENUM值(例如:主房間)來保存int值。 每個房間都有一個容量座位和容量支架。每次有人預訂房間時,我都不應該把它插入我的桌子。 但最後我應該可以問一個房間可以容納多少人。 這可能嗎?我沒有看到關於在互聯網上保持變量的任何事情使用枚舉值存儲變量

回答

2

如果您是學習數據庫設計,遠離枚舉。它們本質上破壞了標準化 - 這有時可能是解決具體問題的一種解決方案,但在嘗試理解概念時不是應該使用的東西。您應該使用具有一對多關係的正確歸一化模型。

由於您需要在房間類型中存儲更多信息,因此enum首先不存在問題 - 這不是枚舉的用途(而且您不能這樣做)。

一個乾淨的模式將是這樣的:

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 ... 
);