【发布时间】:2011-08-30 23:30:02
【问题描述】:
我想在一个表(称为discussion)中创建一个列element_type,它允许文本值“课程”或“测验”,但如果在该列中插入任何其他值,则会产生错误。
我知道我可以创建一个名为 element_types 的单独表,其中包含 element_id(主键,int)和 element_type(唯一,文本)列,并在表 discussion 中创建一个外键 foreign_element_id引用element_types 的列element_id。或者,我可以完全忘记element_id,而只是将element_type 设置为主键。但我想避免创建新表。
有没有更直接的方法来限制列中的可能值而不创建新表?
【问题讨论】:
-
为什么要避免创建表?它们并不是特别昂贵。
-
每当我想限制可能的值时,与其说是表的成本不如说是不必要的混乱,在我的情况下,这种情况非常频繁。
标签: sql postgresql