SQL Azure データベースを設計する方法を見つけようとしています。あなたの主キーがどうあるべきか(int対guid)と両方のアプローチの利点/欠点について多くの情報があるので、私はそこで戦争が起こっていることを知っています:)
しかし、次の 3 つの列をテーブルに追加して、両方の長所を適用することを考えていました。
- 内部 ID
- int 型の IDENTITY
- クラスタ化インデックスとして定義
- 結合で使用
- データベースによって生成されるデフォルト値
- テーブルのみで一意
- 内部でのみ使用
- 決して変えることはできません
- 外部 ID
- ガイド
- クライアント (またはドメイン) によって生成されるデフォルト値
- 世界的にユニーク
- 内部および外部で使用されます。
- 決して変えることはできません
- URLタイトル
- 文字列
- ドメインによって生成された
- テーブルのみで一意
- パブリック URL で使用されるエンティティのユーザー フレンドリーな表現
- 変更可能(変更しないことが望ましい)
そうすることで、InternalId のおかげで整数の主キーのパフォーマンスが得られますが、ExternalId のおかげで十分な柔軟性があります。
私はデータベースの専門家ではありませんので、これが実現可能なことなのか、それとも単純にばかげているのかをお聞きしたいと思います。