国际供应商的数据库设计及其支持语言

时间:2013-05-18 21:56:36

标签: database database-design

我是数据库世界的新手,想要设计一个包含许多服务提供商的数据库。有些人在世界各地提供服务,有些只为少数几个州提供服务。此外,我需要存储他们可以支持其客户的语言。

我想高效查询:
1)为特定州提供服务的所有供应商 2)所有支持某种语言的供应商。

我想到了以下设计:

  • Country_Table {countryID:PK ...}
  • State_Table {stateID:PK,countryID:FK ...}
  • Language_Table {languageID:PK,....}
  • Supplier_Table {supplierID:PK,supplierName,supplier address ...}
  • Supplier_Language_Table {supplierID:PK,FK,languageID:PK,FK}
  • Supplier_State_Table {supplierID:PK,FK,stateID:PK,FK}

这个设计有一些问题:

  1. 如果一个国家没有国家(例如:埃及)该怎么办?我想过在这些情况下使用countryID = 0。所以在Country_Table中,德克萨斯州是州,美国是国家。但是,埃及是国家ID为0的州。这是一个有效的解决方案吗?
  2. 对于供应商支持的每种语言,我需要插入一行。以后通过语言查询供应商是否有效或是否有更好的解决方案?
  3. 在Supplier_State_Table中,我需要为供应商提供的每个州插入一行。这似乎效率低下。我想过使用stateID 0表示整个世界。但即便如此,如果供应商仅向美国提供服务,那么每个美国州的数据行似乎都很疯狂。
  4. 任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

1)否。请同时拥有Supplier_State_TableSupplier_Country_Table

2)这很好。

3)同样,这很好,数据库旨在处理大量数据。