Предположительно, вам нужен внешний ключ наоборот. Можно ожидать, что люди будут ссылаться на проекты, а не проекты, чтобы ссылаться на людей.
Это означает, что вам нужно сначала создать таблицу проектов, а затем таблицу сотрудников. Кроме того, вам нужен правильный первичный ключ для проектов, чтобы вы могли ссылаться на него в людях (я предположил project_name
).
CREATE TABLE PROJECTS (
PROJECT_NAME VARCHAR(32) NOT NULL,
PROJECT_LOCATION VARCHAR(32) NOT NULL,
BUDGET VARCHAR(16) NOT NULL,
PRIMARY KEY (PROJECT_NAME)
);
CREATE TABLE PEOPLE (
NAME VARCHAR(32) NOT NULL,
GENDER ENUM('Male', 'Female', 'Other'),
DOB DATE NOT NULL,
SALARY VARCHAR(16) NOT NULL,
PROJECT VARCHAR(32) NOT NULL,
BUSINESS_NAME VARCHAR(32) NOT NULL,
PRIMARY KEY(NAME, PROJECT),
FOREIGN KEY(PROJECT) REFERENCES PROJECTS(PROJECT_NAME)
);
CREATE TABLE PEOPLE_EMAILS (
NAME_ID VARCHAR(32) NOT NULL,
EMAIL VARCHAR(64) NOT NULL,
PRIMARY KEY(EMAIL),
FOREIGN KEY(NAME_ID) REFERENCES PEOPLE(NAME)
);
CREATE TABLE PEOPLE_PHONE (
NAME_ID2 VARCHAR(32) NOT NULL,
PHONE_NUMBER VARCHAR(32) NOT NULL,
PRIMARY KEY (PHONE_NUMBER),
FOREIGN KEY(NAME_ID2) REFERENCES PEOPLE(NAME)
);
Демонстрация на DB Fiddle