2011-12-25 27 views
1

私はFacebookのアプリケーションを構築しています。アプリケーションは開いたグラフを使ってユーザーの友達にアクセスし、データベースに格納する必要があります。MySQLは大きなユニークな値を区別できません

ここにこのデータベースにはユーザーidnameと私のアプリに必要なその他の情報が含まれています。データベース内の複数のエントリを防ぐために、phpMyAdminを使用してユーザIDをuniqueに割り当てました。これは多くの値に対してうまく機能しますが、同時に大きな時間に失敗します。

51547XXXX 
52160XXXX 
52222XXXX 
52297XXXX 
52448XXXX 

しかし、IDが

5154716XX 
5154716XX 
or 
5216069673X 
521606903XX 

になる場合、それは類似したとして、それをカウントし、したがって、そのうちの1枚を捨てる:

のMySQLによるとユニークな値を言うことができますがあります。

その結果、テーブルに友だちリストを入力しているとしたら、レコードが必要で、私が一意制約を使用しない場合は、値を取得します。

しかし、すぐにアクティブ化されuniqueとして、私はちょうどのレコードが同じ以前のデータとして、それらを考慮すると、破棄されることを意味するを取得。..

私は考えることができるどのような解決策があり、比較データをphpで最初に取得してからデータベースにログオンしますが、その多くのクエリでは長い時間がかかります。 Googleは(32bit版です)MySQLのINT型に合うように、この、知らんなぜ.. :(

+0

Xさんは表現するために仮定されているものを –

+5

がどのように表が定義されている(その列のデータ型)を – Mat

+0

@Dagon:。??これはと思われる64 – whizzzkid

答えて

4

FacebookのユーザーID are too bigにお答えすることはできません。あなたは64ビットであるため、IDの範囲を扱うことができるBIGINTタイプを使用する必要がありますFacebookは使用しています

+0

のサイズとデータ型はINTである:Xは任意の整数 – whizzzkid

+0

通常のintは32ビットで署名され、通常の^ 31-1になります。印章は64ビットですあなたは2^63-1まで得ることができます –

関連する問題