インポート用の小さなSQL SERVER 2000データベースがあります。商品を取引し、新しい機能を拡張します。正しい PK - FK 関係を実装するのに混乱しています。
次の 3 つのテーブルがあります。
Contract (ContractID (PK), SupplierID (FK), ProductID(FK), Date, Quantity, Price )
SupplierInvoice ( SupplierInvoiceID (PK), ContractID (FK) , ImportID (FK) , InvoiceNo, Date,Quantity )
Import ( ImportID (PK) , Date )
Truck ( TruckID (PK), ImportID (FK), CustomerID (FK), Date, Quantity)
説明 :
これらはバルク製品であり、パッケージはありませんが、数量のみです。
- すべての PK は代理 (自動増分) です。
- 1 つの契約で 0 から多くの請求書を持つことができ、1 つの請求書は 1 つの契約に属することができます。( 0 件の請求書が数日で 1 件になります)
- 1 対多の請求書では、0 対 1 のインポートを行います。(0 のインポートは 1 になり、数日で 1 つだけになります) (多くの請求書は、部分的な契約の終了と開始が存在する可能性があることを意味します。)
- 数量 : 1 つの契約の合計請求書数量は、契約数量を超えることはできません。これを制御するためのトリガーを構築します。インポート数量は請求書数量とまったく同じです。
質問:
- このモデル (PK と FK の) は正しいですか)? どう思いますか?
- 輸入後は輸入したものをトラックに積み込みますので、どの仕入先からどの商品を積み込みたいかを入力します。
JOIN
を取得するまで、トラック テーブルから契約テーブルへのクエリを開始するProductID
とSupplierID
、非常に長いクエリになります。どう思いますか? - 数量管理についてどう思いますか?在庫は、レポートの計算フィールドで計算されます。
質問 1 と 2 は、さらに先に進むために非常に重要です。あなたの助けに感謝します。