我正在使用Postgres 9.6.2创建一个电影和电视节目流媒体服务数据库(为学校项目)。但是,我遇到了以下错误:
对于参考表“watchedepisodes”,没有匹配给定键的唯一约束条件
下面的TVratings表将接受一个电视节目,只要用户观看了至少一集(出现在WatchedEpisodes表中),并允许用户对其进行评分。由于WatchedEpisodes具有用户ID、电视节目ID、季节和剧集的复合主键,因此它不允许我仅从该表引用仅由uid和tid组成的复合键。
CREATE TABLE WatchedEpisodes (
uid int unique references Users(uid),
tid int,
season int,
episode int,
FOREIGN KEY(tid, season, episode) REFERENCES Episodes(tid, season, episode),
PRIMARY KEY (uid, tid, season, episode)
);
CREATE TABLE TVRatings (
uid int,
tid int,
rating int check (rating > 0 and rating < 6),
FOREIGN KEY(uid, tid) REFERENCES WatchedEpisodes(uid,tid),
PRIMARY KEY(uid, tid)
);
想知道是否有一种方法只引用复合键的部分。这些只是我的两个表之一,如果需要更多信息,我可以添加更多。