PG快捷键:类似YouTube的短ID作为Postgres主键

2020-12-04 21:02:48

这会安装一个触发器和类型,使您可以使用类似YouTube的简短ID(例如1TNhBqYo-6Q)作为Postgres主键。与YouTube ID一样,SHORTKEY ID是固定长度的,并且是网址安全的。

CREATE TABLE测试(id SHORTKEY PRIMARY KEY,名称TEXT);在对每个行执行程序进行插入插入测试之前,创建触发器trigger_test_genid shortkey_generate(); -生成INSERT INTO test(name)VALUES(' bob'),(' joe'); -用户提供的ID INSERT INTO test(id,name)值(' 1TNhBqYo-6Q&#39 ;,' lisa'); SELECT * FROM test; -id名称-4E_z0mHJvrk bob-wiz_j0HIBuQ joe-1TNhBqYo-6Q lisa

SHORTKEY与文本兼容,大多数理智的ORM应该这样处理。如果没有,请创建一个类型映射到应用程序/ ORM中的任何字符串类型。

SHORTKEY实际上是随机的,因此它们像v4 UUID一样使索引空间碎片化,从而稍微降低了性能。但是与UUID(通过UUID v1 MC提供本地实例的伪顺序类型)不同,该行为无法更改。这是故意的。应该将SHORTKEYs用作面向外部的ID,例如在API中。在那里,它们会阻止枚举和基数评估(例如,那里有多少东西,下一个/上一个东西是什么-就像YouTube一样)。在适当的地方使用。