使用电子邮件地址作为主键的做法是什么?我应该避免使用自动递增的ID号,还是引擎能够处理它?
MySQL数据库,但我对其他引擎如何处理这个问题感兴趣(特别是PostgreSQL).
我正在制作一个用户可以创建帐户的应用程序.我将用户电子邮件作为用户表中的主键.这种技术真的很糟糕吗?我应该创建自动增量整数作为主键吗?
想象一下,我有一张Customer表.
在这个表中是一个ID列,主键int,Identity,所有爵士乐.我们的客户也有一个名字.
现在,如果我要在报告或电子邮件中发送信息,我的网站中有一个链接可以唯一地标识该客户,那么使用主键ID字段是一种好的做法吗?
我所有的直觉都告诉我这很可怕,并且代理ID应该只能用于数据库 - 并且永远不会以这种方式暴露给外部世界.
但我正在寻找将来可以使用的杀手论证,如果(当)提出这个案例.
思考?
我在应用程序中使用asp成员身份
我添加了UserProfile表,它具有Users(asp成员资格)的外键.
作为我使用的外键,Username因为用户名是电子邮件,它是唯一的.
在我需要引用用户的任何地方我都Username用作外键.
从应用程序,当我需要获取配置文件,例如我传递Username给存储过程来获取数据.
我只是想知道这是否是这样做的好方法.这里有一些潜在的安全问题吗?
database sql-server asp.net database-design asp.net-membership