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?*/)
);