【发布时间】:2018-05-25 00:23:18
【问题描述】:
对于保存固定大小字符串值的主键,最好的 Postgres 数据类型是什么?
(例如 - 值正好是字母表中的 6 个字符 [0-z,a-z,A-Z])。
我应该使用 char[6] 吗(它甚至适合用作主键吗?) 我应该在应用程序中使用 bigserial 并从数字转换为 base62 吗?
【问题讨论】:
-
我的第一个想法是使用带有
check约束的字符串。 -
我认为
text是任何char的“最佳”,无论是可变长度还是固定长度 -
我要放一个PK约束。我在问更多关于性能的问题。如果我检查约束 - 我会检查每个错误的插入。
-
你可能应该通读 postgresql.org/docs/current/static/datatype-character.html 一方面,我很确定 Postgres 中的
VarChar(6)与text几乎相同,但对长度有一个检查约束,而 @987654327 @ 实际上必须在某些情况下做额外的工作来处理空间填充。
标签: sql postgresql sqldatatypes