ユーザーがデータを追加する E-Report と呼ばれるフォームを表す必要があります。
すべての E-Reportには がありQAP、すべてQAPには 2 つ以上の がありDefectsます。
これらの欠陥は、次の表に示されています。

最初は、このテーブルには 2 つの欠陥があり、ユーザーは QAP からさらに欠陥を追加したり、必要に応じて新しい欠陥を挿入したりできます。
ユーザーは、、、および列をチェックするかどうかをCRS選択し、これらCRFのデータをテーブルに保存します。MAMIEReportDefect
ところで、QAPデータDefectはWeb サービスになるので、Android デバイスにダウンロードする必要があります。これら 2 つのテーブルを変更してデータを追加することはできません。
私がこの Visio を設計したことを表すには:

Defectテーブルにデータを追加できないため、 、、およびユーザー データを格納し、ユーザーが作成した新しい欠陥を格納するEReportDefectテーブルを作成しました。CRSCRFMAMI
Defectユーザーによって追加された新しいものを表すためにEReportDefect.defectId、NULL として設定し、EReportDefect.description新しい欠陥の説明を保存します。
これらの新しい欠陥には値がなく、値がオンにEReportDefect.defectIdなりますEReportDefect.description。
これは正しいです?NULL 値を持つ外部キー列を使用できますか? より良いアプローチを知っていますか?