ユーザがノートを作成し、カラム(auto_incrementing
フィールド)を持つデータベースに同期させるノートアプリケーションがあります。問題は、ユーザーがインターネットに接続していないときには作成しないので少し複雑になるため、一時的にnoteId
を割り当てて、メモシステム構造の階層に関連する他のものを入れなければならないということです。MySQLのauto_incrementingインデックスからの変更
私はauto_increment
オプションを一斉に削除し、ローカルデバイス(iPhone/iPad - Objective C)にnoteIdとしてデータベースで使用できる一意のID(タイムスタンプ)を作成することを考えています。この方法で、ユーザーがオフラインで、後で再接続すると、一意のIDを送信するのと同じくらい簡単に同期できます。
つの質問:
- どのようにこれがパフォーマンスに影響を与えるのでしょうか?データベースに500,000の音符があり、ユーザーがその音符の1つに変更を加えたとしましょう。 auto_incrementingフィールドでは、システムが256000のnoteIdを見つけるのが簡単だと思いますが、一般的なnoteIdシステムでは、88689034のnoteIdを見つけるのはずっと長いプロセスでしょうか?
- ユーザのデバイス上でメモの一意のIDをローカルに生成するにはどうすればよいでしょうか?タイムスタンプ?
クライアントアプリケーションはObjective C for iPhoneデバイスにあります。 – Snowman
私はiPhoneのUDIDを使用してローカルauto_incrementフィールドを追加すると思いますか?しかし、これは大きな数字です。パフォーマンスの低下はそれほど悪くないでしょうか? – Snowman
UDIDは、電話機の単なる識別子です。あなたはUUID(ユニバーサルユニークな識別子)を使いたいと思っています。この質問を見てみてください:http://stackoverflow.com/questions/427180/how-to-create-a-guid-uuid-using-the-iphone-sdk –