2011-03-17 126 views
2

如果我使用表的主鍵作爲另一個表的主鍵,它仍然是一個外鍵?數據庫模式問題

例如

兩個表的專輯和特別優惠

ALBUMID在兩個

主鍵如何代表這種關係用主鍵的外鍵的符號?

回答

2

是的,它仍然是主鍵。它通常被稱爲一對一的關係。如果e.g你有相同的專輯ALBUMID不再特別優惠表中是唯一的幾個特殊優惠

create table albums (
    album_id integer primary key, 
    -- other fields... 
); 

create table special_offers (
    album_id integer primary key references albums(album_id), 
    -- other fields... 
); 
0

你可以這樣做。
我會考慮添加一個SpecialOfferId並設計一個一對多的關係。

0

帕布羅聖克魯斯是對的 - 是的,你可以做到這一點。然而,在哲學上,只有真正存在一對一關係纔有意義 - 所有專輯都有且僅有一個特別優惠,並且所有特別優惠都有且僅有一個專輯。

從你的問題域猜測,情況並非如此 - 有些專輯沒有特別優惠,有些專輯有1,有些有很多。

如果確實如此,bw_üezi是正確的 - 創建一個一對多的關係。

create table albums (
    album_id integer primary key, 
    -- other fields... 
); 

create table special_offers (
    special_offer_id integer primary key, 
    album_id integer foreign key references albums(album_id), 
    -- other fields... 
);