2011-02-05 2 views
1

私はPostgreSQLを使ってデータベーススキーマを設計しています。私はどのデザインを使うべきかについていくつかの疑問を持っています。データベース設計 - どのデザインを使用しますか? 2つのオプション

tdir_details_uris_textは、多くの数百万のレジスタを持ち、各キーdomain,uriid_languageには約10/20のレジスタがあります。

どのデザインがうまくいくはずですか? 3つのテーブルデザインまたは2つのテーブルデザインは?

よろしく、

PS:私の下手な英語のため申し訳ありません。

enter image description here

enter image description here


アップデート:ただ

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に適していますか?常にそこから始めてください。 –

+0

ドメイン/ url/id_languageがtdir_detauls_uris_textとtdir_uris_textの両方に存在する理由はありますか?これは、一見しただけで、モデルの欠陥と思われます。とにかく、私は実際に提示しようとしている "モデル"についてはわかりません。それは1つのものか、それとも多くのものなのでしょうか?その要件を確実に捉えてください。 –

答えて

0

オプション1の "tdirs_uris_text"テーブルには、私が見ることのできる目的がありません(デザイン全体に2つのテーブルしかない場合)。質問する質問は、 "tdirs_uris_text"の主キーが別のテーブル(外部キー)で複数回使用されるかどうかです。具体的には、「詳細」テーブルに「uris」という外部キーが複数回現れるケースがありますか?そうであれば、オプション1がより良い。それ以外の場合は、オプション2が好ましい。

1

例INTO INSERTを追加するには、3つの表のデザインを必要とする多対多の関係、のような音。

しかし、私はそれがあなたが示すデザインだとは思わない。正しいプライマリキーの関係が表示されません。

表Aは主キーとしてID_Aを持っています。

表Bは、ID_Bを主キーとします。

JOINテーブルABには主キーID_A、ID_Bがあります。それぞれ表Aと表Bの外部キーとなります。

+0

こんにちは、返信いただきありがとうございます。私はINSERT INTOの例で更新しました。どのテーブルにプライマリキーが正しくないのですか?宜しくお願いします、 –

関連する問題