1

私は現在、サービスまたはコンソールアプリケーションがJobQueueテーブルからJobを読み取るモジュールを設計しています。次の情報を含むJobQueueテーブルを設計しました。

JobId:int Primarykey

JobType:int notnull

状態:varchar notnull

CreatedOn:datetime notnull

LastModifiedOn:日時null許容

CompletedOn:日時null許容

JobType属性は主に、特定のタイプのジョブではなく、このテーブルをより一般的に保つために導入されています。私の質問は、実行するジョブの詳細をこのテーブル自体に保持するのか、それともそれを参照するジョブIDを持つ他のテーブルに保持するのかということです。これは、他のテーブルで利用可能なデータがあるためです。したがって、ジョブの実行中に、間接的にデータをフェッチできます。情報の重複を避けるために、私はこのようなことを考えました。これは良いアプローチですか?これについてあなたのアドバイスが必要です

4

2 に答える 2

0

ここには多くの属性が表示されません (表示されていない可能性がありますか?)

ID (jobID) が明らかに必要であり、タイプと状態の情報が表示されます (このデータなしではどうすればよいかわかりません)。

そして、作成、変更、および完了した監査情報が得られます。私自身、誰が作成し、誰が変更したかという文字列をそこに入れるのが好きですが、作成するすべてのテーブルにその監査情報があります。何が起こったかわからず、データベースを維持しようとしている場合に、常に役立ちます。

于 2012-07-27T12:51:30.983 に答える
0

そのテーブルの「他のテーブル」にあるデータはすべて保持してください。ここで考慮しなければならないのは、データをどのように使用するかです。
詳細を表示するために 1 つを選択できる場所からインデックス化されたジョブを表示する場合は、2 つの別々のフェッチでデータを取得できます。または、ジョブに関連するすべてのデータ (JobQueue テーブル内のデータとその「他のテーブル」内のデータ) が必要な場合は、JOIN を使用して常に単一のフェッチを実行できます。JobDetails データを別のテーブルに保持しても問題は発生しないと思います。

于 2012-07-27T13:34:26.953 に答える