用户名作主键?

imafool 2003-08-21 01:54:10
做一个用户登录系统,用户名是唯一的,我在用户的数据表中用用户名作主键。但人们通常是用一个ID字段来做主键。我这样做有何不妥和隐患吗?
...全文
279 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
imafool 2003-08-28
  • 打赏
  • 举报
回复
我最终加了ID……也不甘情不愿:)
owenszc 2003-08-24
  • 打赏
  • 举报
回复
总之呢?用'用户名"做主键不是不可以。但是为了以后可以方便的使用。本人建议你还是加一个ID字段比较好。毕竟加一个也不多嘛
changechange 2003-08-23
  • 打赏
  • 举报
回复
有问题,如果同名同姓,或者员工离开后,又再次被招回怎么办?
zhaoloudy 2003-08-23
  • 打赏
  • 举报
回复
比如:要是你删除了一个用户,再增加同样一个用户名字,ID就不会一样。要是上一个用户的权限表相对用户名没有清除干净,就有问题了。用ID可以避免。不知到我说清除了吗。
imafool 2003-08-23
  • 打赏
  • 举报
回复
因为系统已经确定用户名不能重复和更改,所以才想用用户名的。

为什么数字索引要快啊^_^
sdhdy 2003-08-23
  • 打赏
  • 举报
回复
不妥和隐患:用户名以后可能要更改,而且以后可能有重复的用户名,所以用用户名作主键很不妥,而用ID字段来做主键可以完全避免这种情况。
还有上面所说的:用数字做索引查询和搜索的速度都比字符串快!
Rayfly 2003-08-23
  • 打赏
  • 举报
回复
代理键通常是整数或数字,使用identity属性自动增加,另外,如果用在全文检索的话,这个东东的好处就表现出来了
Rayfly 2003-08-23
  • 打赏
  • 举报
回复
如果使用ID,这个ID称为代理键(surrogate key),数据库里搞这么个东西不是没有道理的
举个简单的例子,有一个人叫“我是一只芒果,果果果果果果果果果果果果果果果”,用ID的的话只要设置为1,你说哪一个好呢?
程序猿之殇 2003-08-23
  • 打赏
  • 举报
回复
我觉得做主键最好用ID,
这样扩展性好,
而且用数字做索引查询和搜索的速度都比字符串快!
imafool 2003-08-21
  • 打赏
  • 举报
回复
这儿用户名不重复。……其实一般都不重复。
fmdsaco 2003-08-21
  • 打赏
  • 举报
回复
用户名有重复的呀
imafool 2003-08-21
  • 打赏
  • 举报
回复
用户名是象所有的注册系统一样:比如CSDN,由用户指定并不可变更。
为什么对join操作会有很大影响呢?
如果用ID,用identity?当数据量非常大时,删除后不可重复使用会不会给将来添麻烦?
愉快的登山者 2003-08-21
  • 打赏
  • 举报
回复
最好使用用户编号,若你的用户名是简写或代号的话,做主键还是可以的。
pengdali 2003-08-21
  • 打赏
  • 举报
回复
你未来要变更用户名呢?
varchar做主键不好,对join的效率有很大影响。
CrazyFor 2003-08-21
  • 打赏
  • 举报
回复
没有问题,可我觉得最好加一个ID.

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧