2013-03-30 80 views

回答

3

一個典型的選擇是1:1擴展表:

create table client (id int primary key); 
create table person (id int foreign key references client(id), ...columns...); 
create table organization (id int foreign key references client(id), ...columns...); 

然而,我的首選是包含在client表中的所有列。您可以有一個類型爲personorganization的列。與行類型不相關的列可以爲空。這樣你的查詢就會簡單得多。

+0

瞭解!謝謝=) – petajamaja

+0

我實際上正在寫一個房租的數據庫。在這種情況下,組織或人員不僅可以是客戶,也可以是房間提供者。所以在這種情況下,我必須有兩個參考? – petajamaja

2

要麼使用3個表,要麼使用1個表,並將不需要的列留空。哪種設計優越取決於用例。只使用1個表提供了更簡單的查詢,但需要更改每個新子類的表。使用多個表格可以輕鬆添加更多類型,但可以提供更復雜的查詢。我懷疑我只會從1張桌子開始,但你的里程可能會有所不同。明白了!