1

次のような状況があるとします: 5 つのエンティティ (簡単にするために縮小) があり、そのうちの 3 つはデータベースにレコードがほとんどないことを明確に知っています (それぞれ 15 ~ 20 程度)。残りの 2 つのエンティティには多くのレコード (数千) があり、急速に成長します。

デフォルトの Hibernate ID 生成戦略 ( AUTO) を使用すると、これは、すべてのレコードがすべてのエンティティにわたって一意の ID を持つことを意味します (シーケンスが 1 つしかないため)。これは、一部のテーブルに多数のレコードがあるため、ID が急速に増加することを意味するため、これには乗り気ではありません。

質問 #1 : 2 つの大きなエンティティの ID 戦略を再定義して、それぞれが独自のシーケンスを持ち、他をオンのままにすることはできAUTOますか? ID 戦略を組み合わせて使用​​することは、良い/悪い習慣と見なされますか? これを行うべき/すべきでない理由はありますか?

質問 #2 : Oracle 10g データベースを検討した場合、ID 生成戦略に関する長所と短所はありますか? 例えば; TABLEの代わりに使用する方が良いSEQUENCEですか?

前もって感謝します!

4

2 に答える 2

1

質問 1: まったく問題ありません。各エンティティ クラスは、独自の ID 戦略を持つことができます。

質問 #2: シーケンスは主に代理キーを生成するために存在します。だから、恐れずに使ってください:-)

于 2011-01-18T11:08:38.770 に答える
0

Oracle DBMS では、すべてのエンティティにシーケンスを使用することを検討する必要があると思います

  • ID生成はDBによって行われるので信頼性が高い
  • コードを理解しやすくする特別なケースはありません
于 2011-01-18T11:06:07.660 に答える