我正在使用mySQL和PHPMyAdmin。
我的数据库中有三个表格和字段;
T_users;
F_uID - varchar - (PK)
F_Forename - text
F_Surname - text
T_candidates;
F_bookingRef - int - auto increment - (PK)
F_sessionID - int
F_uID - varchar
T_TrainingSessions;
F_sessionID - int - auto increment - (PK)
F_sessionDesc - text
F_sessionDate - date
我想在T_Users.F_uID和T_candidates.F_Uid之间创建一对多的关系。
我还想在T_TrainingSessions.F_sessionID和T_candidates.F_sessionID之间创建一对多的关系。
但是,当我在PHPMyAdmin的任何表结构部分中单击“关系视图”时,我只能从下拉列表中选择主键字段!
从我的阅读中,我认为这可能与索引有关,但是我没有设置索引的知识或经验。
非常感谢任何帮助。
:)
添
答案 0 :(得分:1)
您可以从主键字段或具有唯一值的字段创建外键。
如果你不能创建关系
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;