Ассоциативная таблица содержит ошибки - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть школьный проект, в котором мне нужно создать базу данных на SQL сервере. В настоящее время у меня возникают проблемы с вводом в мои таблицы.

Я успешно ввел первые две таблицы, но ассоциативная таблица содержит ошибки, как и другие таблицы, следующие.

create table Home
(
    HomeID INT Identity (1,1) Primary key,
    Address1 varchar(250) not null,
    City varchar(25) not null,
    State1 varchar(25) not null,
    Zipcode CHAR(5) not null,
    SmokeDetectors INT, 
    Co2Detectors INT,
    SecuritySystem CHAR(1),
    TotalSqFt int,
    Rooms INT,
    AdditionalBuilding CHAR(1),
    AssessedValue DEC(10,2),
    YearAssessed char(4),
    CompanyID int not null,
)

create table MortgageCompany
(
    CompanyID INT Identity (1,1) Primary key,
    CompanyName varchar(100) not null,
    Address1 varchar(250),
    City varchar(25),
    State1 varchar(25),
    Zipcode char(5),
    HomeID int not null
)
create table HomeMortgageCompany
(
    HomeID INT, 
    CompanyID INT,
    foreign key CompanyID references MortgageCompany(CompanyID),
    foreign key HomeID references Home(HomeID),
    Primary key (HomeID,CustomerID)
)

create table Loan
(
    LoanID INT Identity (1,1) Primary key,
    LoanNumber int not null,
    MortgageAmount dec(10,2),
    CompanyID int 
foreign key CompanyID references MortgageCompany(CompanyID)
)




create table PersonalProperty
(
    PropertyID INT Identity (1,1) Primary key,
    ItemName int,
    Type1 varchar(150) not null,
    Value1 Dec(10,2) not null,
    HomeID int 

foreign key HomeID references Home(HomeID)
)

create table Policy
(
    PolicyID INT Identity (1,1) Primary key not null,
    PolicyYear char(4),
    PremiumCharged dec(10,2),
    EffectiveDate date not null,
    ExpirationDate date not null,
    ReviewDateTime datetim,
    Decision char(8), 
    HomeID int 
foreign key HomeID references Home(HomeID)
)




create table Bank
(
    AccountID int Identity (1,1) Primary Key,
    BankName varchar(150) not null,
    AccountNumber int not null,
    RoutingNumber int not null,
    Amount Dec(10,2),
    PolicyID int not null
)

create table PolicyBank
(
    PolicyID int,
    AccountID INT,
    foreign key PolicyID references Policy(PolicyID),
    foreign key AccountID references Bank(AccountID),
    Primary Key (PolicyID, AccountID) 
)

Create table PolicyHolder
(
    SSN char(9) Primary key not null,
    FirstName varchar(50) not null,
    LastName varchar(50) not null,
)
create table PolicyPolicyHolder
(
    SSN char(9),
    PolicyID INT,
    foreign key PolicyID references Policy(PolicyID),
    foreign key SSN references PolicyHolder(SSN),
    Primary key (SSN, PolicyID)
)
create table HomePolicyHolder
(
    SSN char(9),
    HomeID Int,
    foreign key HomeID references Home(HomeID),
    foreign key SSN references PolicyHolder(SSN),
    Primary key (SSN, HomeID)
)

create table Employment
(
    SSN char(9) Primary Key,
    EmployerFirstName varchar(50)not null,
    EmployerLastName varchar(50) not null,
    Address1 varchar(250),
    City varchar(25),
    State1 varchar(25),
    Zipcode char(5),
    StartDate date,
    CurrentSalary dec(10,2) not null,
    JobTitle varchar (75),
    RecordExtractionDate date not null,
    foreign key SSN references PolicyHolder(SSN)
)

Create table Document
(
    DocumentID INT Identity (1,1) Primary key,
    DocumentType varchar(50),
    DateTimeSent datetime not null,
    SSN char(9) not null,
    PolicyID int,
foreign key PolicyID references Policy(PolicyID)
)
create table PolicyHolderDocument
(
    DocumentID int,
    SSN char(9),
    foreign key DocumentID references Document(DocumentID),
    foreign key SSN references PolicyHolder(SSN)
);

1 Ответ

1 голос
/ 23 февраля 2020

Для третьего определения таблицы:

create table HomeMortgageCompany ( 
    HomeID INT, 
    CompanyID INT, 
    foreign key CompanyID references MortgageCompany(CompanyID), 
    foreign key HomeID references Home(HomeID), 
    Primary key (HomeID,CustomerID) 
)

Проблемы с этим кодом:

  • имя столбца в определении внешнего ключа должно быть заключено в круглые скобки

  • первичный ключ относится к столбцу CustomerID, но в таблице нет столбца

Предположительно, вы имели в виду:

create table HomeMortgageCompany ( 
    HomeID INT, 
    CompanyID INT, 
    foreign key (CompanyID) references MortgageCompany(CompanyID), 
    foreign key (HomeID) references Home(HomeID), 
    Primary key (HomeID,CompanyID) 
)
...