"phone_num和email_address都是唯一的"   手机号码唯一 可以理解  ,但是 地址怎么可能是唯一 的 ???
例如一个公司有多个人,难道仅允许一个人注册 ???如果有多个属性唯一,可以考虑建立 组合唯一索引 ,例如 : ALTER TABLE `user` ADD UNIQUE (phone_num,email_address);
最好都不允许为空!

解决方案 »

  1.   

    navicat可以可视化操作,建议试一试
      

  2.   


    email_address是指个人邮箱,可以使用邮箱或者手机号码来登陆,必须唯一,如果不建立起和password的索引,登陆的时候查询SQL是否会比较慢一点?
      

  3.   

    UNIQUE KEY(phone_num),
    KEY(phone_num, password),这两个索引有些重复,同样下面两个也有些重复。
    UNIQUE KEY(email_address),
    KEY(email_address, password)但KEY(phone_num, password),KEY(email_address, password) 并不重复。
      

  4.   


    除了这样之外怎么能保证phone_num是独一无二的还能保证查询phone_num和password的效率呢?有什么好的办法吗?
      

  5.   

    UNIQUE KEY(phone_num),
    UNIQUE KEY(email_address),这两个就够了。
      

  6.   


    没有KEY(phone_num, password)这个索引搜索会不会很慢?
      

  7.   

    如果还要继续问为什么不会慢,则建议先浏览一下MYSQL的官方免费手册中的第七章,优化。 了解一下MYSQL如何利用索引来优化查询。