难道跟查询速度有关系么?比如:BBS主题帖子表(表名:Bbs) 
字段名 类型 说明 主键(是/否) 外键 
BbsID Int BBS编号 是 
ClubBBSID Int 版块编号//这里我用UsersName来标识有什么不好的? 
BbsTitle Varchar 标题 
Tag Varchar 关键字 
BbsContent Text 内容 
UsersID Int 添加用户 
AddTime Datetime 添加时间 
UpdateTime Datetime 修改时间 
ReadTimes Int 点击数 
ToTop Bit 置顶 用户表*(表名: Users) 
字段名 类型 说明 主键(是/否) 外键 
UsersID Int 用户ID 是 
UsersName Varchar 用户昵称 
UsersPassWord Varchar 密码 
UsersSex Int 用户性别 
UsersEmail Varchar 用户Email我想要查找某个指定用户的所有帖子:

解决方案 »

  1.   

    上面标识错了如下比如: BBS主题帖子表(表名:Bbs) 
    字段名 类型 说明 主键(是/否) 外键 
    BbsID Int BBS编号 是 
    ClubBBSID Int 版块编号 
    BbsTitle Varchar 标题 
    Tag Varchar 关键字 
    BbsContent Text 内容 
    UsersID Int 添加用户//这里我用UsersName来标识有什么不好的? 
    AddTime Datetime 添加时间 
    UpdateTime Datetime 修改时间 
    ReadTimes Int 点击数 
    ToTop Bit 置顶 用户表*(表名: Users) 
    字段名 类型 说明 主键(是/否) 外键 
    UsersID Int 用户ID 是 
    UsersName Varchar 用户昵称 
    UsersPassWord Varchar 密码 
    UsersSex Int 用户性别 
    UsersEmail Varchar 用户Email 我想要查找某个指定用户的所有帖子:
      

  2.   

    肯定要加ID,ID是一条记录的唯一标识,用来确定数据的唯一性的,而且最好用32位字符唯一编码,这样在做数据处理的时候减少很多工作,也可以解决一些自增长ID无法解决的问题. ID是必需,数据库都是按ID建了索引的,查询起来也要快些,没ID的表,需求自己手动加索引.
      

  3.   


    我的意思:
    比如在页面上我能拿到登录用户的名称,现在要查找指定用户(比如叫aaa)的帖子:
    select BbsTitle from Bbs where UsersName = 'aaa'就可以了,很多时候我们知道的都是这些比较明确的值,而我无法知道aaa用户的id,难不成先根据UsersName查到id,然后在根据id来查找吗?不知道我说的明白没有,我是菜鸟,希望多多指教!谢谢!
      

  4.   

    设置id是为了唯一标识数据,如果你拿用户名作为主键的话,举个例子,你要做个学生系统的话,A班有个同学叫小强,B班有个同学也叫小强. 如果他们都存在一个表里的话,你搜索小强的话就会出来两个,不能做到唯一标识。。当然,如果你的用户名可以做到不重复的话,当然也可以做主键。
    不过数据库的设计规则还是建议使用没有意思的字段作为主键,这样便于排序,查找,更新。。
    至于、而我无法知道aaa用户的id,难不成先根据UsersName查到id,然后在根据id来查找吗? 
    如果你在注册用户的时候不允许用户名字重复。。这个时候查找的时候ID就是多余的。。不过还是建议
    保留ID作为主键