Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 数据库规范化_Database_Dependencies_Primary Key_Normalization_Partial - Fatal编程技术网

Database 数据库规范化

Database 数据库规范化,database,dependencies,primary-key,normalization,partial,Database,Dependencies,Primary Key,Normalization,Partial,我想问一个有关正常化的问题 我有两个包裹,VIN和注册号。 VIN是车辆识别号,登记号是车牌号。 我有一个属性叫做当前里程表。 它对两个PK是部分依赖还是完全依赖?您可能只需要一个PK。使用VIN,因为它是绝对唯一的。注册号可在各州/各省“重复使用” 您的“复合主键”将位于需要的联接表上 车辆表 VIN nvarchar(50) [pk] RegistrationNumber nvarchar(50) NumberOfPassengers int Mak

我想问一个有关正常化的问题

我有两个包裹,VIN和注册号。 VIN是车辆识别号,登记号是车牌号。 我有一个属性叫做当前里程表。
它对两个PK是部分依赖还是完全依赖?

您可能只需要一个PK。使用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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
驱动程序表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
位置表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
维护表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
职员表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
车辆加入司机表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
车辆加入员工表

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)
PositionID           int [pk]
Position             nvarchar(50)
MaintenanceID        int [pk]
VIN                  nvarchar(50) [fk - VEHICLE_TABLE.VIN]
Odometer             decimal(9,2)
MaintenanceDate      DateTime
StaffID              int [pk]
Name                 nvarchar(20)
PositionID           int [fk - POSITION_TABLE.PositionID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
VIN                  nvarchar(50) [cpk fk - VEHICLE_TABLE.VIN]
DriverID             int [cpk fk - DRIVER_TABLE.DriverID]
StaffID              int [cpk fk - STAFF_TABLE.StaffID]
此答案还试图“稍微”回答您的其他问题。

我有两个PK,VIN和注册号。VIN是车辆ID号和 车牌号就是车牌号

您有两个候选密钥。VIN是唯一的;车牌号也可能是唯一的。(但这取决于您的应用程序。)

任何键都可以由多列组成,但您没有一个多列键,您有一个键(VIN)或两个单独的键(VIN和车牌)。这没什么错

我有一个属性叫做当前里程表。它有一个局部的吗 依赖于2个PK还是完全依赖于2个PK

无论此表中只有一个键还是两个键,每个键都只有一列。因为每个可能的键只有一列,所以不可能有部分键依赖关系