2013-05-18 3 views
0

저는 데이터베이스 세계에 처음 왔으며 많은 서비스 제공 업체가 포함 된 데이터베이스를 설계하려고합니다. 일부는 전 세계에 서비스를 제공하며 일부는 몇 개 주에서만 서비스를 제공합니다. 또한 고객을 지원할 수있는 언어를 저장해야합니다.해외 공급 업체를위한 데이터베이스 설계 및 지원 언어

효율적인 질의를 원합니다 :
1) 특정 주를 서비스하는 모든 공급 업체.
2) 특정 언어를 지원하는 모든 공급 업체.

  • State_Table {stateID : PK, countryID : FK ...} {... PK countryID}
  • Language_Table {

    • Country_Table :

      나는 다음과 같은 설계의 생각 언어 ID : PK, ....}

    • Supplier_Table {supplierID : PK, supplierName, 공급자 주소 ...}
    • Supplier_Lang uage_Table {공급 업체 ID : PK, FK,의 LanguageID : PK, FK}
    • Supplier_State_Table {공급 업체 ID : PK, FK, stateID : PK, FK}


    내가이 디자인에 몇 가지 문제가 있습니다

    1. 주 (예 : 이집트)가없는 국가의 경우 어떻게해야합니까? 이 경우에는 countryID = 0을 사용하려고 생각했습니다. 그래서 Country_Table에서 텍사스는 주이며 미국은 나라입니다. 그러나 이집트는 countryID가 0 인 주입니다. 이것이 유효한 해결책입니까?
    2. 공급 업체가 지원하는 각 언어에 대해 행을 삽입해야합니다. 나중에 언어별로 공급 업체를 쿼리하는 것이 효율적입니까 아니면 더 나은 솔루션입니까?
    3. Supplier_State_Table 공급자가 제공하는 각 상태에 대한 행을 삽입해야합니다. 이것은 비효율적 인 것처럼 보인다. stateID 0을 사용하여 전 세계를 나타낼 것을 생각했습니다. 그러나 공급자가 미국에만 서비스를 제공하는 경우에도 각 미국 주마다 데이터 행을 갖는 것이 미친 것처럼 보입니다.

    어떤 도움을 주시면 감사하겠습니다.

  • 답변

    0

    1) 호 대신에,이 양쪽 Supplier_State_TableSupplier_Country_Table

    2)이 잘된다.

    3) 다시 말하지만, 데이터베이스가 많은 데이터를 처리하도록 설계되었습니다.

    관련 문제