2014-04-20 138 views
2

我已經閱讀了關於SO和其他網站的其他答案,但找不到解決方案或者可能是我無法理解。指兩個表的外鍵

這裏的問題是:

我在我的數據庫

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) 

有這3個表現在的問題是獎臺的winner屬性。 根據問題陳述,獎勵可以頒發給電影或個人。

所以從我個人理解AWARD表的winner屬性應該是一個FOREIGN KEYPRIMARY KEY小號無論是MOVIE/PERSON表。

我讀過的其他解決方案建議爲表格創建一個超類型,但在這裏我沒有任何電影和人物之間的相似性(沒有共同的超類)。有關如何在這種情況下進行的任何建議?

回答

1

獎勵可以是PERSON_AWARD和MOVIE_AWARD的超級類型,因爲獎勵是(至少)兩種類型。 (一個人不能贏得'最佳圖片')。所以PERSON_AWARD是(award_id,贏家),勝者是人的外鍵。 MOVIE_AWARD是(award_id,獲勝者),其中獲勝者是MOVIE的外鍵。

+0

完美。說得通。 ****對我來說太愚蠢了。感謝邁克。乾杯!! –