ノーマライゼーションに関する質問です。
VIN と Reg_no の 2 つの PK があります。VIN は車両 ID 番号で、登録番号は車のプレート番号です。現在の走行距離計という属性があります。2 つの PK に部分的な依存関係がありますか、または完全な依存関係がありますか?
ノーマライゼーションに関する質問です。
VIN と Reg_no の 2 つの PK があります。VIN は車両 ID 番号で、登録番号は車のプレート番号です。現在の走行距離計という属性があります。2 つの PK に部分的な依存関係がありますか、または完全な依存関係がありますか?
VIN と Reg_no の 2 つの PK があります。VIN は車両 ID 番号で、登録番号は車のプレート番号です。
候補キーが 2 つあります。VIN は一意です。プレート番号もおそらく一意です。(ただし、アプリケーションによって異なります。)
どのキーも複数の列で構成できますが、複数列のキーは 1 つではなく、1 つのキー (VIN) または 2 つの個別のキー (VIN とプレート) のいずれかです。そして、それは何も悪いことではありません。
現在の走行距離計という属性があります。2 つの PK に部分的な依存関係がありますか、または完全な依存関係がありますか?
このテーブルにキーが 1 つだけか 2 つしかないかに関係なく、各キーには 1 つの列しかありません。考えられる各キーには列が 1 つしかないため、部分的なキー依存関係を持つことはできません。
おそらく、必要な PK は 1 つだけです。VIN は完全に一意であるため、VIN を使用してください。登録番号は、州/州全体で「再利用」できます。
「複合主キー」は、必要に応じて結合テーブルに配置されます。
車両_テーブル
VIN nvarchar(50) [pk]
RegistrationNumber nvarchar(50)
NumberOfPassengers int
Make nvarchar(20)
Model nvarchar(20)
Color nvarchar (20)
Features nvarchar(MAX)
ドライバー_テーブル
DriverID int [pk]
Name nvarchar(20)
Address nvarchar(50)
OtherCrap nvarchar(MAX)
POSITION_TABLE
PositionID int [pk]
Position nvarchar(50)
メンテナンス_テーブル
MaintenanceID int [pk]
VIN nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer decimal(9,2)
MaintenanceDate DateTime
STAFF_TABLE
StaffID int [pk]
Name nvarchar(20)
PositionID int [fk - POSITION_TABLE.PositionID]
VEHICLE_JOIN_DRIVER_TABLE
VIN nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID int [cpk fk - DRIVER_TABLE.DriverID]
VEHICLE_JOIN_STAFF_TABLE
VIN nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID int [cpk fk - DRIVER_TABLE.DriverID]
StaffID int [cpk fk - STAFF_TABLE.StaffID]
この回答は、他の質問にも「ある程度」回答しようとします。
テーブルに割り当てる必要がある PK と FK は何ですか?