2011-02-05 46 views
1

我正在使用PostgreSQL設計數據庫模式。我對使用哪種設計有些疑問。數據庫設計 - 我應該使用哪種設計?兩個選項

tdir_details_uris_text將具有數百萬個寄存器,每個密鑰domain,uri,id_language將具有大約10/20個寄存器。

哪種設計應該表現良好? 3桌設計或2桌設計?

最好的問候,

PS:對不起,我的英文不好。

enter image description here

enter image description here


更新:我想補充一個INSERT INTO例如

insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'title_webpage', '1', '2009 Ford Mustang GT'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '1', 'No Accidents/Damage Reported to CARFAX'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '2', 'No Airbag Deployment Reported to CARFAX'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '3', 'Vehicle Qualifies for the CARFAX Buyback Guarantee'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '4', 'No Structural/Frame Damage Reported to CARFAX'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '5', 'No Manufacturer Recalls Reported to CARFAX'); 
insert into tdir_details_uris_text (domain, uri, id_language, id_categorie, id_data, id_ordinal, n_text) values ('motors.shop.ebay.com', 'http://cgi.ebay.com/ebaymotors/2009-FORD-MUSTANG-GT-BLACK-BEAUTY-16K-MILES-WOW-/230580626087?pt=US_Cars_Trucks&hash=item35afad22a7', 'en', '23', 'highlights', '6', 'No Indication of an Odometer Rollback'); 
+0

真正的問題是:哪種設計更適合Model *和* Relation Algebra?總是從那裏開始。 – 2011-02-05 19:52:42

+0

在tdir_detauls_uris_text和tdir_uris_text中是否存在domain/url/id_language的原因?這似乎是模型中的一個缺陷,只是一目瞭然。無論如何,我不確定試圖呈現的真實「模型」。它是一個還是多個等等?確保捕獲該要求。 – 2011-02-05 19:55:18

回答

0

選項1中的「tdirs_uris_text」表沒有目的,我可以看到(如果在整個設計中只有兩個表)。要問的問題是,「tdirs_uris_text」中的主鍵是否會在不同的表(作爲外鍵)上多次使用。具體來說,是否會有「情況」表具有多次出現「uris」外鍵的情況?如果是這樣,選項1更好,否則選項2是首選。

1

聽起來像許多一對多的關係,這將需要三個表設計。

但我不認爲這是你展示的設計。我沒有看到正確的主鍵關係。

表A將ID_A作爲主鍵。

表B將ID_B作爲主鍵。

JOIN表AB將有主鍵ID_A,ID_B;每一個分別是表A和B的外鍵。