1

この質問は他の質問と似ていますが(同じではありません!)、事前に申し訳ありません。

とにかく、後で同期するために、複数の場所で代理キーを生成できる必要があります。GUIDの使用を検討していましたが、これらのキーはURLのパラメーターに表示される必要があり、GUIDは非常に複雑で見苦しいものになります。

整数を使用してデータベースのパフォーマンスを向上させるスキームを検討していましたが、明らかに自動数値を使用することはできません。アイデアは、2つの意味を持つキーを使用することです-私がそれが呼ばれていると信じている高低戦略。キーは、ソース(生成された場所、このビジネスケースでは通常2つの場所のうちの1つ)と自動インクリメントされた値で構成されます。例えば:

1-000000567、1-000000568、1-000000569、1-000000570、..。

そして別の情報源のために:

2-000000567、2-000000567、..。

これは、それらを整数としてデータベースに格納できることも意味します(つまり、「2-000000567」は整数「2000000567」になります)。

誰かがこれに関する問題を見ることができますか?発生する可能性のあるインデックス作成断片化など?それとも、それを行うためのより良い方法ですか?

確認のために、このキーにはビジネス上の意味はありません。ユーザーはこのキーを表示したり(URLのパラメーターを除いて)使用したりすることはありません。

私はあなたの意見を楽しみにして、あなたの時間を感謝します、百万に感謝します:)

4

1 に答える 1

1

これは、あなたが参照しているhiloアルゴリズムを説明しています: Hi/Loアルゴリズムとは何ですか?

これは、あなたのような問題を「切断」するためによく使用されるソリューションです。たとえば、Hibernate/nHibernate を使用している場合、これは推奨される主キー オプションの 1 つです。

于 2009-11-27T00:16:43.570 に答える