8

いくつかのエンティティを ID から Hilo id-generator に切り替えようとしています。

次の高い値を保持するテーブルをどのように設計する必要があるのか​​ わかりません。

  • すべてのエンティティまたは関連するエンティティのグループに対して単一のテーブルを使用する必要がありますか?
  • エンティティごとに別のテーブルを使用する必要がありますか?
  • エンティティごとに別の行または列を持つ単一のテーブルを使用する必要がありますか?

ベストプラクティスはありますか? 何を考慮する必要がありますか?どのアプローチにも長所と短所はありますか?

4

1 に答える 1

3

単一の「ベスト」プラクティスがあるとは思いませんが、HiLo がどのように機能するかを理解することは重要です。

  • テーブル hilo ジェネレーターは、このタスクにより自然に適合するシーケンスをサポートしないデータベース用に設計されています。
  • クラスのHi値は、そのクラスのインスタンスを初めて保存するとき、またはLo値を使い果たしたときに取得および更新されます。
  • クラスごとに異なるHi値が使用されます。

したがって、少なくとも 2 つの変数を考慮する必要があります。

  • 競合。別のテーブルを使用すると、パフォーマンスが少し向上する可能性があります
  • 範囲。非常に大きなデータベースでは、最終的にHi値が不足するリスクが高くなります。

それを考えるとあとは好みの問題です。

于 2010-02-04T20:01:55.010 に答える