使用枚举值

时间:2016-11-20 14:45:38

标签: postgresql database-design enums

我是SQL新手(仍然精益求精)。 我正在尝试为管理事件的场所创建关系数据库。 我有一个属性存储哪个房间已被保留。 数据类型是ENUM。 我的问题是我需要我的ENUM值(例如:主房间)来保存int值。 每个房间都有一个容量座位和容量支架。每次有人预留房间时我都不应该把它插入我的桌子。 但最后我应该能够问一个房间可以容纳多少人。 这可能吗?我没有看到关于在intenet上持有变量的任何内容

1 个答案:

答案 0 :(得分: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 ...
);