用戶可以通過Facebook的身份驗證,所以我存儲的Facebook的UID在我的數據庫,當在我用戶登錄需要查詢我的數據庫是這樣的:什麼是最好的數據庫類型來存儲Facebook的UID?我的應用程序的
SELECT * FROM users WHERE uid = _SOME_UID_;
現在uid
列是VARCHAR,但我認爲,我需要將它轉換爲一些數字類型的BIGINT。
爲什麼我覺得我需要做的是:
處理器時間:與數字(過濾/索引)一般操作總是比相同的操作變得更快用繩子
存儲:數字小於相應的字符串
ammm ... oauth-argume NT Facebook的身份驗證是驗證我將使用的唯一類型(actualy,這是一個畫布應用程序) - 所以我不需要去關心那些非NUMERICS
和問題的UID是:
- 我對嗎?
- Facebook有一天會開始使用非數字式用戶名嗎?
我不認爲他們會開始使用非數字ID,這會在他們的系統中造成很多麻煩(因爲我猜他們使用某種格式,檢查userIDs aswel)。 Bigint會做得很好。 –
varchar可以用作映射來查找存儲數據的機器,並且可以使用其他不熟悉的技巧(您可以使用數字來完成相同的操作,但要獲取正確的數字會更加複雜)。我猜測存儲系統的facebook使用比傳統數據庫更復雜,並可能會使用varchars的優勢。最後,任何軟件工程師都會認爲使用數字作爲初始思想的關鍵。我相信Facebook有這樣的想法,並選擇使用varchar的原因 –