私は研究室の分析データベースを持っており、バストデータのレイアウトに取り組んでいます。「共有主キー」を使用するための同様の要件に基づくいくつかの提案を見てきましたが、外部キーだけの利点はわかりません。私はPostgreSQLを使用しています:以下にリストされているテーブル
Sample
___________
sample_id (PK)
sample_type (where in the process the sample came from)
sample_timestamp (when was the sample taken)
Analysis
___________
analysis_id (PK)
sample_id (FK references sample)
method (what analytical method was performed)
analysis_timestamp (when did the analysis take place)
analysis_notes
gc
____________
analysis_id (shared Primary key)
gc_concentration_meoh (methanol concentration)
gc_concentration_benzene (benzene concentration)
spectrophotometer
_____________
analysis_id
spectro_nm (wavelength used)
spectro_abs (absorbance measured)
この設計を使用することも、フィールドを分析テーブルから GC テーブルと分光光度計テーブルの両方に移動して、サンプル テーブル、GC テーブル、分光光度計テーブルの間で外部キーを使用することもできます。この設計の唯一の利点は、実際の結果に参加する必要がなく、実行された分析の数または種類に関する情報だけが必要な場合です。ただし、共有された主キー間の参照整合性を確保するための追加の規則、および追加の結合とトリガー (削除カスケードなど) の管理は、マイナーな利点よりも頭痛の種になるようです。私は DBA ではなく科学者なので、何が足りないか教えてください。
更新:共有主キー(私が理解しているように)は、親テーブル(分析)の各値が子テーブルの1つに1回表示されなければならないという追加の制約を持つ1対1の外部キーのようなものです。一度。