database - Postgresql enum 有什么优点和缺点?

标签 database postgresql

在我工作的地方,我们使用 postgres 数据库(8.3 即将迁移到 8.4)。目前关于在数据库中使用枚举存在一些小争论。我个人不喜欢 db 枚举类型。除其他事项外,它将应用程序逻辑放入数据库中,并为代码和数据之间的不匹配创造了可能性。

我想知道 postgres 枚举的优点到底是什么(除了可读性之外),缺点是什么?

最佳答案

枚举的优点是:

  • 表现更好。您可以只显示从核心表中获得的内容,而不是使用单独的查找表将代码转换为值,或者使用应用程序逻辑将代码转换为值。这在数据仓库应用程序中尤其有用。
  • Ad hoc SQL 更容易编写

缺点是:

  • 将显示值编码到数据库 ddl 中是错误的形式。如果您在应用代码中将枚举值转换为不同的显示值,那么您将失去使用枚举的许多优势。
  • 添加值需要更改 DDL
  • 使语言本地化变得困难
  • 数据库可移植性降低

关于database - Postgresql enum 有什么优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318123/

相关文章:

database - Sqlite 给列的大小超过了需要

ruby - 为什么 Postgres 全文搜索和 Elasticsearch 对结果的排名不同?

sql - 按 3 个字段分组时显示聚合数据的单个 SQL 查询

database - 依赖追踪功能

javascript - 尝试在React Native Stack Navigator v5中访问route.params

mysql - 显示 MySQL 中包含相同值的所有行(2 列过滤器)

database - Liquibase Maven 和命令行工作方式不同

mysql - 将 sqlite 表导入 mySQL 数据库

sql - PostgreSQL 中 date_part 函数的语法错误

php - 为什么 postgresql 不存储我的整个(PHP)浮点值?