Вы можете создавать внешние ключи из полей, которые являются первичными ключами, или полей, имеющих уникальные значения.
Если вы не можете создать отношения
T_Users.F_uID<---->>T_candidates.F_Uid
T_TrainingSessions.F_sessionID<---->>T_candidates.F_sessionID
(one<---->>many)
, возможно, вы пытаетесь создатьобратные отношения.
попробуйте это:
CREATE TABLE T_users (
F_uID VARCHAR(SIZE) NOT NULL,
F_Forename TEXT NOT NULL,
F_Surname TEXT NOT NULL,
PRIMARY KEY(F_uID)
)
TYPE=InnoDB;
CREATE TABLE T_TrainingSessions (
F_sessionID INT AUTO_INCREMENT NOT NULL,
F_sessionDesc TEXT NOT NULL,
F_sessionDate DATE NOT NULL,
PRIMARY KEY(F_sessionID)
)
TYPE=InnoDB;
CREATE TABLE T_candidates (
F_bookingRef INT AUTO_INCREMENT NOT NULL,
F_sessionID INT NOT NULL,
F_uID VARCHAR(SIZE) NOT NULL,
PRIMARY KEY(F_bookingRef)
INDEX FKIndex1(F_sessionID),
INDEX FKIndex2(F_uID),
FOREIGN KEY(F_uID)
REFERENCES T_users(F_uID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
FOREIGN KEY(F_sessionID)
REFERENCES T_TrainingSessions(F_sessionID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
TYPE=InnoDB;