postgresql Postgres自定义类型与表

fkvaft9z  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(210)

这是我第一次对数据库建模,我发现Postgres有能力定义自定义枚举类型,这与编程语言中的枚举非常相似。
我的问题是什么时候应该用类型来代替带外键的表?
在像“性别”这样的列中,类型显然是个不错的选择,但是我应该对所有的“查找”表都这样做吗?国籍?员工状态等等?
感谢您发送编修。

5kgi1eie

5kgi1eie1#

通常,在列可以采用一组固定值的情况下,使用定制枚举类型是一个好主意。在您的示例中,表示人的性别的列可能具有一组固定值,如“male”、“female”和“other”。在这种情况下,使用自定义枚举类型是一个好主意,因为它可以防止您意外地为列输入无效值。
另一方面,如果列的可能值集不是固定的,或者可能会随时间而变化,则最好使用具有外键约束条件的单独表,而不是使用自定义枚举类型。例如,如果有一列表示某个人的国籍,则最好使用单独的表来存储可能的国籍。并使用外键约束条件来确保只能为人员输入有效的国籍。此方法使您可以轻松地添加、删除或更新可能的国籍,而不必更改数据库的方案。

相关问题