我正在构建我的一个数据库的架构。我有以下两个表...
CREATE TABLE User(
userID INT AUTO_INCREMENT,
...
PRIMARY KEY(userID)
);
CREATE TABLE Tool(
toolID INT AUTO_INCREMENT,
...
PRIMARY KEY(toolID)
)
我想创建一个名为 hasTool 的表,它使用外键约束具有两个表的两个主键。但是,除此之外,我想让这两个字段都成为新表 hasTool 的复合键。我尝试了以下方法,但似乎没有产生预期的行为:
CREATE TABLE gcHasCoordinates (
userID INT NOT NULL,
toolID INT NOT NULL,
PRIMARY KEY (userID , toolID ),
CONSTRAINT foreign_key_to_User FOREIGN KEY (userID) REFERENCES Coordinate(coordinateID) ,
CONSTRAINT foreign_key_to_Tool FOREIGN KEY (toolID ) REFERENCES Tool(toolID)
);
我想允许表允许用户 ID 或工具 ID 的多个实例,但不能同时允许两者,并且是表用户和工具上的现有值。
提前致谢!