我在一个新数据库中设置了几个表。我有一张Users
桌子,一张Companies
桌子,一张UserCompanies
桌子(这样一个用户可以为许多不同的公司工作)和一张UserPay
桌子。
CREATE TABLE tblUsers
(
[UserTableID] INT IDENTITY NOT NULL PRIMARY KEY,
[UserEmail] VARCHAR(50) NOT NULL,
[UserFirstName] VARCHAR(20) NOT NULL,
[UserLastName] VARCHAR(20) NOT NULL,
[UserAddress1] VARCHAR(45) NULL,
[UserAddress2] VARCHAR(45) SPARSE NULL,
[UserCity] VARCHAR(45) NULL,
[UserState] VARCHAR(2) NULL,
[UserZipCode] VARCHAR(10) NULL,
[UserPhone] VARCHAR(13) NULL,
)
CREATE TABLE tblCompanies
(
[CompanyID] INT IDENTITY NOT NULL PRIMARY KEY,
[CompanyName] VARCHAR(45) NOT NULL,
[CompanyAddress1] VARCHAR(45) NULL,
[CompanyAddress2] VARCHAR(45) SPARSE NULL,
[CompanyCity] VARCHAR(45) NULL,
[CompanyState] VARCHAR(2) NULL,
[CompanyPhone] VARCHAR(13) NULL,
[CompanyPhoneExtension] VARCHAR(8) NULL,
[CompanyContactFirstName] VARCHAR(20) NOT NULL,
[CompanyContactLastName] VARCHAR(20) NOT NULL
)
CREATE TABLE tblUserCompanies
(
[UserTableID] INT NOT NULL,
[CompanyID] INT NOT NULL,
PRIMARY KEY (UserTableID, CompanyID),
FOREIGN KEY (UserTableID) REFERENCES tblUsers(UserTableID),
FOREIGN KEY (CompanyID) REFERENCES tblCompanies(CompanyID)
)
CREATE TABLE tblUserPay
(
[UserPayID] INT IDENTITY NOT NULL PRIMARY KEY,
[UserID] INT NOT NULL REFERENCES tblUserCompanies(UserTableID),
[UserCompany] INT NOT NULL REFERENCES tblUserCompanies(CompanyID),
[NetPay] MONEY NOT NULL,
[PayDate] DATE NOT NULL
)
问题是我收到一个错误,指出..“引用表中没有与 .tblUserCompanies
中的引用列列表匹配的主键或候选键tblUserPay
。
我不明白为什么我会出错。相同的数据类型,完整的外键,建立的主键。我唯一能想到的是它会抛出一个错误,因为我有一个外键链接到另一个外键。如果可以的话请帮忙!谢谢