I want to break the many-many relationship between SalesMan
and Customer
with the new entity: Sale
.
I would like to use idSalesMan
and idCustomer
as primary key in Sale
but SalesMan
has a foreign key that will be in the Sale
entity too.
Do I need to use all 3 foreign keys as primary keys or are idSalesMan
and idCustomer
enough?
Here is how the script might look like (using Postgres):
CREATE TABLE Company(
idCompany SERIAL PRIMARY KEY,
name VARCHAR(45) NOT NULL
);
CREATE TABLE SalesMan(
idSalesMan SERIAL PRIMARY KEY,
name VARCHAR(45),
wage DOUBLE NOT NULL,
Company_idCompany INT REFERENCES Company ON DELETE CASCADE
);
CREATE TABLE Customer(
idCustomer SERIAL PRIMARY KEY,
name VARCHAR(45) NOT NULL
);
CREATE TABLE Sale(
SalesMan_idSalesMan INT REFERENCES SalesMan ON DELETE CASCADE,
SalesMan_Company_idCompany INT REFERENCES Company ON DELETE CASCADE,
Customer_idCustomer INT REFERENCES Customer ON DELETE CASCADE,
PRIMARY KEY (SalesMan_idSalesMan, Customer_idCustomer
/*,SalesMan_Company_idCompany?*/)
);