0

nhibernate を使い始めたとき、私はいつもインクリメント int を使っていました。nhibernate と作業単位について詳しく知ったので、int をインクリメントするのは良い方法ではないように感じます (それらは作業単位を壊します)。

主キーとして何を使用すればよいのでしょうか。GUID または HILO を使用する必要がありますか?

GUID が一意であることを確認するのは好きですが、巨大なデータベースを取得し始めると、GUID が多くのスペースを占める可能性があるのは好きではありません。

私はHILOを使ったことはありませんが、それを機能させるには特別なhiloテーブルが必要だと思います。

人々の考えとは。

また、時間ができたら、この新しい PK データ型を使用するように古いコードを変換して、作業単位をより有効に活用できるようにしたいと考えています。

ok データを PK に変換する最良の方法は何ですか? 私が話した 2 つのデータ型のいずれかを使用すると、他のデータ型よりも簡単に変換できますか?

4

1 に答える 1

0

たとえば、クロス DB レプリケーションが必要な場合は、GUID を使用する必要があります。また、標準の GUID ではないため、インデックスが台無しになります。NH には Guid.Comb があります。

HILOについては、バッチ処理に1回だけ使用しました。余分なテーブルを使用するという考えは好きではありません。その後ナチュラルキーに移行。

基本的に、Guid.Comb を使用することをお勧めします。このことについての読み物は次
のとおりです。 Guid.Comb識別子戦略の使用

于 2012-08-02T20:15:28.223 に答える