关于使用电子邮件地址作为主键的想法

d00*_*dle 3 mysql database postgresql primary-key surrogate-key

使用电子邮件地址作为主键的做法是什么?我应该避免使用自动递增的ID号,还是引擎能够处理它?

MySQL数据库,但我对其他引擎如何处理这个问题感兴趣(特别是PostgreSQL).

Mic*_*ant 8

您应该始终拥有一个没有业务价值的唯一整数主键.然后将其称为代理键.

您应该将电子邮件地址本身存储在另一个字段中,通常使用索引,以便它可以作为查找的键.

这将使您能够提供基于使用查找的电子邮件地址定位用户的功能.此时的任何其他功能然后将该记录主键用于其他操作,例如更新用户地址.