私のサイト(ASP.NET/C#/MS-SQL 2005)には、コメント(ユーザープロファイル、画像ページ、ビデオなど)を許可する複数のセクションがあります。すべてを1つのコメントテーブルに保存したいと思います。
私の問題は、コメントをその親にリンクすることです。ユーザープロファイルの主キーは一意の識別子ですが、画像と動画はintを使用します。コメントからその親への外部キー関係が欲しいのですが。
このためのベストプラクティスと見なされるものは何ですか?
私のサイト(ASP.NET/C#/MS-SQL 2005)には、コメント(ユーザープロファイル、画像ページ、ビデオなど)を許可する複数のセクションがあります。すべてを1つのコメントテーブルに保存したいと思います。
私の問題は、コメントをその親にリンクすることです。ユーザープロファイルの主キーは一意の識別子ですが、画像と動画はintを使用します。コメントからその親への外部キー関係が欲しいのですが。
このためのベストプラクティスと見なされるものは何ですか?
ここでは、ベストプラクティスについて議論があります。私の意見は、すべてに代理IDを使用することです。必要かどうかにかかわらず、ユーザープロファイルにも使用できます。次に、関連するエンティティを接続するための1つの「パターン」を処理するだけで済みます。これにより、必要に応じて多くの定型コードを自動化できます。ボイラープレートを自動化しない場合でも、記述が簡単になり、エラーが発生しにくくなります。
コメントを許可するセクションごとに1つずつ、結合テーブルを使用します。次に、コメントテーブルに必要なキーを使用し、結合テーブルにはセクションテーブルとコメントテーブルの識別子が必要です。
user_profiles
id uniqueidentifier
...
comments
id int
...
user_profile_comments
profile_id uniqueidentifier
comment_id int