我有一个表user与userID作为主键。我还有另一张桌子Friends。在Friends表中,我有两个用户的朋友表示由列UserID和FrndID其中两个UserID和FrndID应该是一个userID表user。
user
userID
Friends
UserID
FrndID
我要加强数据完整性。我可以使用这样的东西吗?
ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`, `friendId`) REFERENCES `users` (`userId`, `userId`) ON DELETE CASCADE ON UPDATE CASCADE;
我想知道REFERENCES用户(userId ,userId)多次正确引用一列吗?我之所以没有创建2个单独的约束,是因为两个用户都必须存在于table中user。
REFERENCES
(
,
)
不,您应该创建两个外键:
ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`userId`) REFERENCES `users` (`userId`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `ufd_users_fk` FOREIGN KEY (`friendId`) REFERENCES `users` (`userId`) ON DELETE CASCADE ON UPDATE CASCADE;