数据库主键的有关问题

数据库主键的问题
一个表中存用户名和密码,想让用户名唯一要把用户名设为主键吗,可是还有个id号,一般不是把id设为主键吗?请问实际中是否真的是用“XXID号”当主键的,怎么觉的ID号是多余的
------解决方案--------------------
id可以作为主键,而用户名可以用unique,比如:

create unique index un_idx_username on 表(用户名)

这样就使得用户名是唯一的了,如果插入重复的用户名,就会报错的