私は、多レベル項目の製造における特定の活動を記録するトレーサビリティシステムを開発しています。 grand-parentアイテムは、2つまたは4つの親アイテムで構成され、2つの子アイテムから構成されます。各レベルでデータベース構造の質問:祖父母/親子テーブルとの関係を持つテーブル
、製造プロセスの様々な時点で、リークテストがアイテムの全ての3つのタイプに行われる - それぞれに対して記録された情報が同じになります、リークレートのパス又はフェイルフラグ、タイムスタンプ等
PK: LeakTestID, Int
FK: LeakTestItemID, Int
FK: LeakTestTypeID, Int
LeakageRate, Float
Result, Bit
:
は、だから私はFKが参照され、テーブル表示するインジケータと一緒に、テストが関連アイテムのIDを保持するための一般的なFKフィールドで、1つのLeakTestsテーブルを選びますか異なるタイプのFKを別のフィールドに保管していますか?
PK: LeakTestID, Int
FK: ChildID, Int
FK: ParentID, Int
FK: GrandparentID, Int
LeakageRate, Float
Result, Bit
また、アイテムのレベルごとに1つずつ、3つのリークテストテーブルを選択しますか?
私はさまざまな長所と短所をそれぞれ見ることができます。私は何度か自分の考えを変えました。
どのような考えですか?私はこのシステムの要件がほとんど定義されておらず、私の仕事の一部はビジネスと川下の顧客と、両面を下ろすために取り組むことです。しかし、そのままでは、どのようにデータが使用されるのか、要件が変わる可能性があるかどうかはわかりません。
明確化:私はG-親/親/子ビットが投げた人だと思う - 3つの階層は同じ階層ではありません、彼らは完全に異なっている、例えば:
ATS:
PK: ATSID, Int
MeasurementA char()
MeasurementB char()
MeasurementC char()
SleevedPair:
PK: SleevedPairID, Int
MeasurementD char()
MeasurementE char()
SleevedItem:
PK: SleevedItemID
MeasurementG char()
MeasurementH char()
MeasurementI char()
MeasurementJ char()
MeasurementK char()
...それだけ各オブジェクトに1つ以上のリークテストが関連付けられていることがあります。
私は質問の中で特異性の欠如を明示する上での要件が明確でないと思います。 –
これは問題を明確にします。あなたは言った: "リークテストは、3つのタイプのアイテムすべてについて実行されます - それぞれに対して記録された情報は同じです:"それは、 "アセンブリ"のすべてのアイテムに適用される1つのテスト...アセンブリのPERアイテム? –
@Stephanie - 最初に、SleevedItemはリークテストを受けます。その後、別のSleevedItemに参加してSleevedPairを作成します。SleevedPairもリークテストされます。そして、いくつかのSleevedPairsがATSに適合し、さらに5つのリークテストがあります。いずれの場合も、リークテストが失敗した場合、そのアイテムは再加工され、リークテストされます。私はこれがすべてをクリアすることを願っています。 – CJM