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