postgresql DB中唯一键的正确数据类型是什么?

soc*_*ket 19 database postgresql database-design data-warehouse

我应该在postgresql数据库表中为唯一键(例如用户的id)选择哪种数据类型?
bigint是一个吗?

谢谢

小智 31

使用该serial类型自动递增唯一ID.

如果您计划拥有超过20亿条目,请使用bigserial.serial是PostgresSQL相当于MySQL的AUTO_INCREMENT.

PostgresSQL文档:数字类型

  • 我建议不要这样做:如果您使用“serial”并通过 API 向公众公开此 ID,那么您就会让任何试图从您的网站抓取数据的人的生活变得轻松。 (6认同)
  • 如果数据的安全性取决于 PK 的数据类型,那么我们的问题就更大了。@PeterKnego (2认同)

a_h*_*ame 6

bigint(或者bigserial如果你需要自动递增键)就可以了.

如果知道一定的,你是不会加载太多行,你可能会考虑integer(或定期serial),并潜在地节省一些硬盘空间.