Таблицы будут строить, но каждый раз, когда я пытаюсь вставить значения в таблицу, я получаю ошибку 1452 ограничений внешнего ключа. Интересно, имеет ли проблема проблема с таблицей EMPLOYEE внешний ключ для STORE_CODE в таблице STORE, а таблица STORE имеет внешний ключ для EMP_CODE в таблице EMPLOYEE. Является ли циркуляр ссылкой здесь проблемой?Каков правильный способ иметь внешние ключи в таблицах, которые ссылаются друг на друга
ALTER TABLE EMPLOYEE DROP FOREIGN KEY STORE_CD;
ALTER TABLE STORE DROP FOREIGN KEY REGION_CD;
ALTER TABLE STORE DROP FOREIGN KEY EMPLOYEE_CD;
DROP TABLE IF EXISTS EMPLOYEE, REGION, STORE;
CREATE TABLE EMPLOYEE (
EMP_CODE int NOT NULL PRIMARY KEY,
EMP_TITLE varchar(4),
EMP_LNAME varchar(15),
EMP_FNAME varchar(15),
EMP_INITIAL varchar(1),
EMP_DOB datetime,
STORE_CODE int NOT NULL
) Engine=InnoDB;
-- Table Region
CREATE TABLE REGION (
REGION_CODE int NOT NULL PRIMARY KEY,
REGION_DESCRIPT varchar(20)
) Engine=InnoDB;
-- Table Store
CREATE TABLE STORE (
STORE_CODE int NOT NULL PRIMARY KEY,
STORE_NAME varchar(20) NOT NULL,
STORE_YTD_SALES numeric NOT NULL,
REGION_CODE int NOT NULL,
EMP_CODE int NOT NULL
) Engine=InnoDB;
ALTER TABLE EMPLOYEE ADD CONSTRAINT STORE_CD
FOREIGN KEY STORE_CD(STORE_CODE) REFERENCES STORE(STORE_CODE);
ALTER TABLE STORE ADD CONSTRAINT REGION_CD
FOREIGN KEY REGION_CD(REGION_CODE) REFERENCES REGION(REGION_CODE);
ALTER TABLE STORE ADD CONSTRAINT EMPLOYEE_CD
FOREIGN KEY EMPLOYEE_CD(EMP_CODE) REFERENCES EMPLOYEE(EMP_CODE);
Почему в первую очередь стоит код сотрудника в таблице магазинов? Есть ли в каждом магазине только один сотрудник? Это специальный сотрудник, как менеджер? – Barmar
Да, код сотрудника в магазине должен представлять менеджера или районного менеджера. – WP0987