WEBサービスのデータ設計をするときに、ID値を32bitの範囲にするか、64bitの範囲にするかというのは、結構悩みますよね。 32bitというのは、だいたい21億くらいです。ユーザーが21億人を超えることはまずないので、ユーザーIDは32bitで設計しますが、お知らせIDなどは膨大になると想定して64bitまで使えるように設計したりします。 64bitというと、MySQLではカラム定義をbigintにし、Javaではフィールドをlongで定義します。 最近は個人的に、サーバサイドをJavaで記述し、アプリのクライアントサイドをObjective-Cで記述することが多いのですが、このlongの取り扱いで大事故を起こすところでした。 Objective-Cのlongは、64bitではない これはiOSの話で、Macアプリで使うObjective-Cは違うのですが、Objective-Cのl
![驚愕の事実。Objective-Cのintとlongの最大値は同じだった。](https://cdn-ak-scissors.b.st-hatena.com/image/square/c7237aba980ddbbc41fb76fd604c6a3d0d5dcd4a/height=288;version=1;width=512/https%3A%2F%2Fblog.katty.in%2Fwp-content%2Fuploads%2F2013%2F07%2F61aada2705832a97eaf98798e7818e41.png)