系統允許手機和郵箱註冊,如何保證唯一性

來源:互聯網
上載者:User
關鍵字 php
如果只有手機註冊,只要給手機做唯一索引即可,但是如果郵箱也可以註冊,那進來的就不一定是手機了,也就是說mobile和email兩個都不能設唯一索引,因為如果兩個手機使用者註冊進來了,就會有兩個email為空白的記錄,存在不唯一的情況,反之亦然。怎麼處理?

回複內容:

如果只有手機註冊,只要給手機做唯一索引即可,但是如果郵箱也可以註冊,那進來的就不一定是手機了,也就是說mobile和email兩個都不能設唯一索引,因為如果兩個手機使用者註冊進來了,就會有兩個email為空白的記錄,存在不唯一的情況,反之亦然。怎麼處理?

我感覺有兩種解決方案:
1、email和mobile設為同一個欄位。
2、email和mobile同時設為unique,但是允許null,當同為null時是可以插入成功的

手機+郵箱做唯一索引呢

樓上兩個欄位同時判斷應該可行。
但一定要用這兩個欄位作唯一索引嗎?另增一個欄位,添加記錄時添入唯一索引值不知可以不?

你把手機和郵箱設定為聯合唯一索引。
UNIQUE INDEX table('mobilePhone','email)

這個很簡單呀,選擇郵箱註冊則郵箱是唯一標識(用於登入),可以綁定多個手機。如果是手機註冊,手機是唯一標識,理論上也可以綁定多個郵箱(但實際大多數禁止多個)。這種狀態就可以通過手機和郵箱註冊兩個互不影響登入的帳號。所以唯一性是必須的,但是不同類型的帳號是可以存在你所謂的不唯一!好好理解下吧!

可以使用一個無意義的唯一數作為使用者的索引,然後註冊時判斷使用的手機或郵箱是否已經註冊過。如果沒有註冊過就產生一個新的唯一數作為這個新註冊使用者的索引。

郵箱和手機的唯一性通過註冊時的判斷來保證。

但是日後如果使用者補充註冊時未填寫的手機或郵箱時,就需要考慮是否仍要保證唯一性了。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.