2012-09-15 49 views
4

Facebook用戶的ID是否有最大值?Facebook用戶ID的存儲

我正在使用SQL整數來存儲值,但它不夠,因爲我遇到了一個15位數的ID。

我猜沒有(會是邏輯...),並且正在使用一個大整數的等價物?那麼我應該切換到varchar(255)?

+1

我不認爲Facebook有任何關於限制用戶數量的計劃,所以你可能只需要爲將來計劃:) –

+2

根據[文檔](https://developers.facebook.com/docs/ reference/api/user /),用戶的ID是一個字符串(可能恰好只包含0 ... 9範圍內的字符),而不是數字。 – hvd

回答

10

Facebook曾建議您將user_id值存儲爲字符串(現在無法在任何地方找到參考)。 The documentation也表示user_id的值是一個字符串。

根據我的經驗,user_id可以是bigint(20)的值,但我認爲將它存儲爲字符串是個好主意,可以防止將來任何可能的更改與我的應用程序混淆。無論如何,真正的user_id真的不需要數字操作;這只是一個獨特的標識符。確保將它用作數據庫用戶表中的索引,以便不會有重複的user_id。

+0

用戶ID最多有多少個字符? –

+1

@ida - 爲了將來能夠證明你的實現,我幾乎會給你最大的感受,你的數據庫可以處理。今天,我所知道的最長的FBID是15個字符,但隨着系統的增長,這個數字很快會達到16 ..然後是17 ...相反,真的很高的數字,以便您的系統不會有時間打破未來。 – Lix

+0

謝謝@Lix,非常有幫助 –

3

Java Practices,這是一個好主意,因爲提示中提到的原因,將facebook用戶ID存儲在一個字符串中。你可以在這個字段上定義一個索引來加速過濾,我猜你不會對這些用戶ID執行任何數字類型的查詢。

+2

它確實是一種獨立於語言的「良好習慣」,人們通過多種方式和多種語言與Facebook進行整合,Facebook上的「user_id」返回在所有情況下都是不變的。 – Lix

+2

對,完全同意! – Vikdor

+0

我碰巧是Java Practices的粉絲,所以這是一個很酷的答案。我也同意這是一個很好的全面練習:) –