なぜasp.netはMembership、Role、Profileプロバイダにbigintの代わりにGUID列を使用するのですか?asp.netがbigintの代わりにGUID列を使用する理由
私が聞いたように、int/bigintでguidsを使うのが最も受け入れられる理由は、これらのテーブルを複製したり、別のテーブルにマージする必要があるかどうかはわかりません。
なぜasp.netはMembership、Role、Profileプロバイダにbigintの代わりにGUID列を使用するのですか?asp.netがbigintの代わりにGUID列を使用する理由
私が聞いたように、int/bigintでguidsを使うのが最も受け入れられる理由は、これらのテーブルを複製したり、別のテーブルにマージする必要があるかどうかはわかりません。
これは、それが必要かどうか疑問に思う理由の反対側にGUIDの種類を使用する可能性があります。そのデータベースの作成者は、さまざまなサイトで使用することを意図していたため、 がを他のデータとマージする必要がある状況で使用されないことを保証しません。
ガイドの主な利点は、すべてのデータとテーブルで完全に一意であることです。ところで、値の面でより多くのヘッドルーム
メンバシップ、ロール、およびプロファイルプロバイダが、1組のテーブル内の複数のアプリケーションのロールとメンバシップをサポートしていることにも注意してください。これらすべてのアプリケーションに対して自動インクリメント列を維持しなければならない場合は、エンタープライズソリューション全体で発生するすべての削除を伴うメンテナンスの悪夢となります。 MS SQL Serverのユニークな識別子であるGUIDは、これをずっと簡単に管理できます。
ありがとうございます。 – jim
他の方法を見てみると、なぜGUIDを使用しないのですか? インデックスのサイズと非効率性が主なものになります。これらの両方は、膨大な量のデータを含む本当の懸念事項であり、あなたの例はそうではありません。
bigintでしたが、3つのプロファイルが作成されていれば、誰もが最初に4つのプロファイルを作成していましたが、今度は2つのインスタンスをマージする必要があります。あなたが責任を持っておらず、どこでも代理キーを使用していたら、悪夢。 Microsoftがそう言ったので
だから私は私の設計でこれを探していたとき、私の質問があり、私は、GUIDを使用しない....
ちょうど[クラスタリングキーとしての**悪いGUIDの読み方](http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx )あなたはあなたの心を変えるかもしれない..... –
を買う余裕ができます。 –
ASP.NETメンバーシップサブシステムはおそらくSharepointの人々によって設計されていたでしょう.....--) –
@marc_s - 正直言って、ASP.NET 2.0の機能の大部分メンバーシップを含む)はSharePoopのために指定されました。 –