私は私と私の家の人々のために料理のスケジュールを設定することができます小さなasp.net mvcアプリケーションを作っています。私はDishDatesというテーブルを持っていて、誰が料理の日を持っているのかを記録しています。現在、3つの列(DishDateId、PersonId、およびDate)が含まれています。 DishDateIdはPK、PersonIdはPersonテーブルへのFK、Dateは料理がある日の日付です。日付と外部キーを使用するID列を追加する必要がありますか?
私たちは、特定の日に皿に1人しかいません。 PersonIdはDateに関連付けられています。私のアプリは、その月のディッシュカレンダーを自動的に生成することができます。今では、既に作成された月の新しい料理リストを再生成して再生成することもできます。アプリケーションはその月の既存のレコードを削除してから作成します。これを行うたびに、DishDateIdフィールドはID列であるために値が大きくなります。
私はこのアプリの生涯よりも長い時間のために十分である20億行以上をまだ持つことができるので、これは実際問題ではないことを知っています。しかし、これはID列を使用せず、PersonIdとDateフィールドを持ち、DateをPKにするほうが賢明なケースでしょうか?私はアイデンティティの列がちょっとしたものであるか何かであるか不必要であると感じます。
日付列はID列ではありません。 DishDateId列はID列です。このデータベースが接続されているアプリケーションは料理の日付を生成し、このテーブルに送信します。また、要件に応じて、料理には1日に1人しかいないので、料理は独特のものになります。 – kcon90