在我工作的地方,我们使用 postgres 数据库(8.3 即将迁移到 8.4)。目前关于在数据库中使用枚举存在一些小争论。我个人不喜欢 db 枚举类型。除其他事项外,它将应用程序逻辑放入数据库中,并为代码和数据之间的不匹配创造了可能性。
我想知道 postgres 枚举的优点到底是什么(除了可读性之外),缺点是什么?
最佳答案
枚举的优点是:
- 表现更好。您可以只显示从核心表中获得的内容,而不是使用单独的查找表将代码转换为值,或者使用应用程序逻辑将代码转换为值。这在数据仓库应用程序中尤其有用。
- Ad hoc SQL 更容易编写
缺点是:
- 将显示值编码到数据库 ddl 中是错误的形式。如果您在应用代码中将枚举值转换为不同的显示值,那么您将失去使用枚举的许多优势。
- 添加值需要更改 DDL
- 使语言本地化变得困难
- 数据库可移植性降低
关于database - Postgresql enum 有什么优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318123/