0

TemplateTeststep および TestplanTeststep テーブルのテーブル継承を導入していただけますか?

TestplanTeststep は、常にTemplateTeststep (赤) と編集可能なフィールド (紫)の読み取り専用コピーです。

TemplateTeststep には、TestplanTeststep テーブルには表示されない個々のフィールドがあります。TestplanTeststep には、TemplateTeststep テーブルには表示されない個々のフィールドがあります。

さらに、TestplanTeststep テーブルには、読み取り専用の TemplateTeststep テーブルのフィールドがいくつかあります。(レポート/調査などのために安全である必要があるため、誰も変更しないでください...)

ここに画像の説明を入力

TemplateTeststep には、誰が何をいつ変更したかを履歴追跡するための TestplanTeststep には表示されない ModifiedBy および ModifiedAt フィールドがまだあります。

4

2 に答える 2

0

これは実際には使用状況によって異なります。

速度は大きな懸念事項ですか?これらのデータの読み取りが多数ある場合、単一の論理エンティティの値を2つのテーブルに分割すると、読み取りの待ち時間が長くなります。低スループットのシステムでは、これはごくわずかですが、数億の行がある場合、これは合計されます。

データセットのサイズを制限することは、読み取りアクセスのパフォーマンスよりも重要ですか?データを非正規化すると、データの読み取りが速くなり(ディスクの異なるセクターではなく、1つの連続したスペースにのみ保存される)、必要なロックの量が減りますが、保存するスペースの量が増えることは周知の事実です。データセット全体。

ORMソリューションを使用していますか、それとも「手動で」テーブル間で結合しますか?前者はデータの分割を簡単にする可能性があり、後者はエラーが発生しやすい可能性があります。

ここに正しい答えも間違った答えもないと思います。コードベースの残りの部分/組織の残りの部分で使用されているアプローチを使用する傾向があります。

はJavaのHibernateforORMを使用する傾向があるため、その価値については、おそらくマルチテーブル継承を使用します。

于 2012-06-24T09:10:38.000 に答える
0
  1. Foreign KeyTestPlanTestStep にa が必要Tableです。

  2. 従う TemplateTestStep と TestPlanTestStepのPrimary-Foreignキー。Relation-ShipSecond form of Normalization

  3. 誰かがレポートを必要としているかのDesignようです。De-Normalizationそうでない場合は、Duplicate列を削除して回避redundancyしてくださいDatabase

于 2012-06-24T11:20:51.193 に答える