查找表和枚举类型,哪个更好?
What is better: a lookup table or an enum type?

原始链接: https://www.cybertec-postgresql.com/en/lookup-table-or-enum-type/

启用 JavaScript 和 Cookie 以继续。

## PostgreSQL 中的查找表与枚举:讨论 一篇 Hacker News 的讨论探讨了在 PostgreSQL 数据库中表示一组固定值的方法——使用查找表或枚举类型。初步测试显示,两种方法存储大小出乎意料地相似(约 338MB-392MB),尽管人们普遍认为枚举更节省空间。这归因于 PostgreSQL 的行对齐填充,可能抵消了查找表中使用的较小数据类型(如 `smallint`)的优势。 对话主要倾向于查找表,因为它们更灵活。当需要关联元数据(标签、描述等)或值需要更改时,枚举会变得有问题。查找表允许更轻松的维护,并在值演化时避免代码更改。 一些评论者强调了最小化连接的重要性,建议将查找值用作主键。另一些人指出,枚举可用于验证并在 Prisma 等工具中生成类型。最终,选择取决于具体的用例,可维护性通常比细微的性能差异更重要。有些人建议在应用程序逻辑中使用静态配置文件来处理验证,以完全避免数据库开销。
相关文章

原文
联系我们 contact @ memedata.com