我已经在SO和其他网站上阅读了其他答案,但无法找到解决方案,或者我可能无法理解。
问题在于:
我的数据库中有这3个表
MOVIE (Primary Key movie_id)
(movie_id, movie_name, release_date, running_time, rating, ranking genre_id)
PEOPLE(Primary Key people_id)
(people_id, title, family_name, given_name, gender, date_of_birth)
AWARD(Primary Key award_id)
(award_id, organization_id, title, year, winner)
现在问题是Award表的winner
属性。
根据问题陈述,奖励可以颁发给电影或个人。
因此,根据我的理解,winner
表的AWARD
属性应该是FOREIGN KEY
表的PRIMARY KEY
到MOVIE/PERSON
。
我读到的其他解决方案建议为表格制作超类型,但在这里我没有电影和人物之间的任何相似性(没有普通的超类)。关于如何在这种情况下进行的任何建议?
答案 0 :(得分:1)
AWARD可以是PERSON_AWARD和MOVIE_AWARD的超级类型,因为奖项属于(至少)两种类型。 (一个人不能赢得'最佳影片')。所以PERSON_AWARD是(award_id,胜利者),其中获胜者是PEOPLE的外键。 MOVIE_AWARD是(award_id,获胜者),其中获胜者是MOVIE的外键。