2011-02-05 3 views
1

PostgreSQL을 사용하여 데이터베이스 스키마를 설계하고 있습니다. 어떤 디자인을 사용해야하는지 몇 가지 의구심이 있습니다.데이터베이스 디자인 - 어떤 디자인을 사용해야합니까? 두 가지 옵션

tdir_details_uris_text 레지스터의 수백만이있을 것이다, 각 키 domainuriid_language 약 10/20 레지스터를해야합니다.

어떤 디자인이 잘 작동해야합니까? 3 테이블 디자인 또는 2 테이블 디자인?

안녕하십니까,

추신 : 불쌍한 내 영어. 죄송합니다.

enter image description here

enter image description here


업데이트 : 그냥 예로의 INSERT를 추가 할

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에 모두 존재하는 이유가 있습니까? 이는 모델의 결함 인 것 같습니다. 어쨌든, 나는 제시하려고하는 실제 "모델"에 대해 확신하지 못합니다. 그것은 하나 또는 여러 개의 등입니까? 해당 요구 사항을 캡처해야합니다. –

답변

0

옵션 1의 "tdirs_uris_text"테이블은 (전체 디자인에 두 개의 테이블 만있는 경우) 볼 수있는 용도가 없습니다. 묻는 질문은 "tdirs_uris_text"의 기본 키가 다른 테이블 (외래 키)에서 여러 번 사용되는지 여부입니다. 특히, "details"테이블에 "uris"외래 키가 여러 번 나타나는 경우가 있습니까? 그렇다면 옵션 1이 더 좋습니다. 그렇지 않으면 옵션 2가 더 좋습니다.

1

처럼 소리 대다 세 테이블 디자인을 필요로하는 관계 .

그러나 나는 당신이 보여준 디자인이라고 생각하지 않습니다. 올바른 기본 키 관계가 표시되지 않습니다.

표 A는 ID_A를 기본 키로 사용합니다.

표 B는 ID_B를 기본 키로 사용합니다.

JOIN 테이블 AB에는 기본 키 ID_A, ID_B가 있습니다. 각각은 표 A와 B의 외래 키입니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. INSERT INTO 예제로 업데이트했습니다. 어떤 테이블에서 기본 키가 올바르지 않습니까? 친애하는, –

관련 문제