Facebooks yeni UID boyutları işlemek nasıl?

4 Cevap php

Ben bir Facebook uygulaması üzerinde biraz çalışıyorum, ama ben arkadaşım etkileşimini test etmek için yeni bir kullanıcı kayıt sırasında yeni bir kullanıcı bir uid var (100000XXXXXXXXX) bu işlemek için php için büyük görünüyor.

Aynı değer veritabanı sonuçlarında numarasını kaydetme (2147483647). Ben uid işaretsiz bir bigint uyabilecek inansın, bu da PHPs arıza olduğunu tahmin ediyorum?

Ben, herhangi bir öneriniz buradan nereye gitmek oldukça emin değilim?

4 Cevap

Düzeltme her zaman bir dize olarak UID'sini saklamaktır. MySQL VARCHAR alan türünü kullanın ve iyi olacak.

Genel olarak, birçok veritabanı uzmanları (bu durumda UID) gibi başka bir uygulamanın yabancı anahtarları yorumlama bad bad bad olduğunu söyleyecektir ve onlara opak metin işlemek gerekir.

Facebook imzasız bir BIGINT olarak saklamak için recommonds.

User nesne ayrıntıları ve bağlantıları bulunabilir here.

Bunu kullanmak için gidiyoruz eğer sonuçta, bu sayfa veya JSON veri veya lifli bulunuyor başka bir şey görüntülenecek gidiyor, çünkü PHP için, (bir dize olarak saklamak istiyorum. Aritmetik gerçekleştirmek için gerçek bir ihtiyaç yok bu sayı).

Ben bir kaç uygulamalar için BIGINT imzasız kullanıyorum ve gayet güzel çalışıyor.

MySQL alanında ne tür UID verileri olarak depolamak? Bir imzasız Bigint 18446744073709551615 kadar saklayabilirsiniz. (http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html bak)

Bunun gibi bir şey aracılığıyla şemasını güncelleştirmek ...

ALTER TABLE <table name> MODIFY COLUMN <column name> BIGINT UNSIGNED NOT NULL;

... Ve ben her şey iyi olacak sanıyorum.

NB: Ben derinden yanlış değilim sağlamak için bir yedekleme bu denemek isteyeceksiniz. :-)