1

SQL Azure データベースを設計する方法を見つけようとしています。あなたの主キーがどうあるべきか(int対guid)と両方のアプローチの利点/欠点について多くの情報があるので、私はそこで戦争が起こっていることを知っています:)

しかし、次の 3 つの列をテーブルに追加して、両方の長所を適用することを考えていました。

  • 内部 ID
    • int 型の IDENTITY
    • クラスタ化インデックスとして定義
    • 結合で使用
    • データベースによって生成されるデフォルト値
    • テーブルのみで一意
    • 内部でのみ使用
    • 決して変えることはできません
  • 外部 ID
    • ガイド
    • クライアント (またはドメイン) によって生成されるデフォルト値
    • 世界的にユニーク
    • 内部および外部で使用されます。
    • 決して変えることはできません
  • URLタイトル
    • 文字列
    • ドメインによって生成された
    • テーブルのみで一意
    • パブリック URL で使用されるエンティティのユーザー フレンドリーな表現
    • 変更可能(変更しないことが望ましい)

そうすることで、InternalId のおかげで整数の主キーのパフォーマンスが得られますが、ExternalId のおかげで十分な柔軟性があります。

私はデータベースの専門家ではありませんので、これが実現可能なことなのか、それとも単純にばかげているのかをお聞きしたいと思います。

4

1 に答える 1

2

さまざまな目的のために、テーブル内でいくつかの異なるキーを使用することは珍しいことではありません。すべてのキーに一意性制約を適用し、適切なインデックスを作成してください。開発者が各キーの目的を理解し、一貫した方法でそれらを使用していることを確認してください。

于 2013-08-13T16:56:23.540 に答える