一个常用的注册用户表的主键的设置

咏帆 2011-06-27 05:12:54
一个注册用户表,用户名是字符串类型的,唯一的

请问这样一个表,有必要再建一个自增的ID字段来做为主键吗?

如果没必要,那用用户名字段来做主键吗?

刚搜索了一下,好像推荐用int型的来做主键,不推荐用字符型字段做主键
...全文
1310 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanzhouqi 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 miocoojjx 的回复:]
一个注册用户表,用户名是字符串类型的,唯一的

请问这样一个表,有必要再建一个自增的ID字段来做为主键吗?

如果没必要,那用用户名字段来做主键吗?

刚搜索了一下,好像推荐用int型的来做主键,不推荐用字符型字段做主键
[/Quote]推荐int 是因为 int的性能 方面比 字符串的要好
AcHerat 元老 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 miocoojjx 的回复:]
如果使用用户字段来做主键,那像我写的一些分页的select top 这样的语句那就实现不了分页了
[/Quote]

用户名唯一,怎么会分不了页,你语句怎么写的呢?
咏帆 2011-06-27
  • 打赏
  • 举报
回复
如果使用用户字段来做主键,那像我写的一些分页的select top 这样的语句那就实现不了分页了
cd731107 2011-06-27
  • 打赏
  • 举报
回复
这样已经可以了,不需要另外建主键,如一张单据的主表,单据号肯定的唯一的主键,
而单据号基本不会使用int型,基本都是带有年月日的字符型
咏帆 2011-06-27
  • 打赏
  • 举报
回复
我通常的做法是,用一个自增的ID字段来做主键,用用户名做外键关链到别的表

请问这样做有什么不好的地方呢?
zs621 2011-06-27
  • 打赏
  • 举报
回复
区别不是很大,各有各的好处。这个很多时候是个人习惯问题
GoAwayZ 2011-06-27
  • 打赏
  • 举报
回复
主键是主键,用户名是用户名,你不会用用户名去做外键关联到别的表吧。至于主键类型,个人觉得字符好一点,一般情况自己写个生成编号的函数,例如用户表主键'US00000000000001','US00000000000002'

34,838

社区成员

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

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