数据库设计中问题

hyj956948933 2009-12-03 09:29:08
请问:
数据库设计中用户表与用户详细信息表之间,用id做外键方便,还是用username来做外键?
...全文
89 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zys2419740 2009-12-15
  • 打赏
  • 举报
回复
ID,不多说了,以后都不要用NAME做关联的外键!
daisycool 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crazylaa 的回复:]
引用楼主 hyj956948933 的回复:
请问:
数据库设计中用户表与用户详细信息表之间,用id做外键方便,还是用username来做外键?


个人看法:主键尽量与业务无关。
[/Quote]

用户名在大多数情况下都是一旦设定就不能再更改,所以即便作了主键不会和业务层有一毛钱关系。
daisycool 2009-12-15
  • 打赏
  • 举报
回复
无所谓,只要保证username必须唯一(其实很多情况下username都必须是唯一的)和必须是不能包含汉字和特殊字符就可以。

不要忘了,主键的特性是唯一,只要满足这个特性都可以作主键,不必须是数字,更不必是所谓的”ID“。既然是主健,就理所当然不得不戒的可以作外键了
chht108 2009-12-14
  • 打赏
  • 举报
回复
个人看法:主键尽量与业务无关。
[/Quote]
java_running 2009-12-05
  • 打赏
  • 举报
回复
一般来讲,当时是Id做主键或外键咯
jarvis_java 2009-12-05
  • 打赏
  • 举报
回复
用户表是ID做主键。用户详细信息外间是用户ID 用户名肯定不能做主键!因为有同名的人
  • 打赏
  • 举报
回复
在一个系统中有很多的表都会使用到 username 这个字段值,如果都是采用 USER 表中的 id 来关联的话,那么在查询时关于 username 的东西都必须先跑到 USER 表中把 id 查出来,再通过 id 去查,这样做的话很明显多了一次表的查询,因此我认为关于 username 作为关联字段比较适合。
  • 打赏
  • 举报
回复
用户与用户信息表一般使用 username 作为关联的居多。这样的关联属于适当的数据冗余。

当然了,在 USER 表中的 username 是不允许更改的,也不允许删掉,而且必须是唯一的。
cs_hai 2009-12-04
  • 打赏
  • 举报
回复
userid做外键
id就是用来唯一标识一条记录的
zclbleach 2009-12-04
  • 打赏
  • 举报
回复
对啊 尽量避免中文乱码问题
jackterq 2009-12-04
  • 打赏
  • 举报
回复
当然用id啦....如2楼所言,主键尽量与业务无关...
另外..username可能会有中文的情况...乱码问题会烦死你...
phoenix_qiqi 2009-12-03
  • 打赏
  • 举报
回复
用id
username 容易重名
crazylaa 2009-12-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 hyj956948933 的回复:]
请问:
数据库设计中用户表与用户详细信息表之间,用id做外键方便,还是用username来做外键?
[/Quote]

个人看法:主键尽量与业务无关。
道光2008 2009-12-03
  • 打赏
  • 举报
回复
用户表 user_id,username:id是主键
用户信息表:userinfo_id, user_id: user_id是外键

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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