パフォーマンスの観点から、この質問を拡大したいと思います。データベーススキーマは次のとおりです。
作る
- MakeId
- MakeName
モデル
- モデル ID
- モデル名
- MakeId (外部キー)
車両
- 車両 ID
- 購入日
- モデル ID (外部キー)
車両のメーカーを知りたい場合は、Vehicle.Model.Makeを使用して Model テーブルをトラバースする必要があります。このように接続された 3 つではなく 4 つまたは 5 つのテーブルがあると仮定して、たとえば InvoiceForVehicle.Vehicle.Model.Make と記述する必要があります。これにより、クエリのパフォーマンスが低下すると思います。
MakeId (FK)列を InvoiceForVehicle テーブルに追加して、make に直接渡すことができます。これは、データが重複していることを意味し、InvoiceForVehicle と車両の間の関係を変更するたびに、それに応じてMakeId (FK)を更新する必要があります。
車両の請求書
- 請求書ID
- 作成日
- 車両 ID (外部キー)
- MakeId (外部キー)
それは良い考えですか?