2016-09-22 12 views
0

私は私と私の家の人々のために料理のスケジュールを設定することができます小さな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にするほうが賢明なケースでしょうか?私はアイデンティティの列がちょっとしたものであるか何かであるか不必要であると感じます。

ScreenShot of DishDates Data

答えて

1

PersonIdとDatesの値を再作成するときには、一時表でそれらを作成し、日付の一致に基づいてMERGE関数を使用するだけで済みます(定数値とPersonIdは任意の行の変数値です)。

はい、DateDishId自体のID列は必要ありませんが、上記のプロセスを使用する場合、行の数は同じ月のデータの繰り返しごとに増加しません。

身分証明書の欄に日付を記入するのにどれくらいの時間がかかるかを計算させていただきますが、アイデンティティがINTの場合は、あなた、私、あなたのルームメイト、それを知っている、周りにいる可能性は低いので、汗をかくことは何もありません!

0

はい、それは次の人に毎日新しい日付を割り当てるよう、あなたは、あなたの要件ごとにPKとして日付を設定することができ、あなたが言ったようにもそれがID列です。

混乱:日付の列にIDを割り当てる方法は?

+0

日付列はID列ではありません。 DishDateId列はID列です。このデータベースが接続されているアプリケーションは料理の日付を生成し、このテーブルに送信します。また、要件に応じて、料理には1日に1人しかいないので、料理は独特のものになります。 – kcon90

関連する問題