table 中的主键应该是 user-defined 字符串还是 UUID?

Should a primary key in a table be a user-defined string or a UUID?

我正在开发一款用户可以创建待售商品的应用程序。 我的 table 将保存如下数据:标题(字符串)、类别(字符串)、价格(数字)和其他一些不那么重要的数据。

我还需要 URL 的 slug,所以我的问题是:我应该将 slug 存储为主键 (ID) 还是将其作为全局二级索引? .

你能保证 slug 是唯一的并且永远不会改变吗?如果是这样,你可能会把它用作PK。

这意味着当您根据客户输入生成 slug 时,您必须测试带有该 slug 的项目是否已经存在。如果是,则请求失败并要求用户提供不同的值。这样做直到您成功插入。