0

在美国的 50 个州中,除路易斯安那州和阿拉斯加州外,大多数州都有县。

我的桌子看起来像这样

**State_tbl**
State_id
State_name

**County_tbl**
County_id
State_id ->state_tbl
County_name

**City_tbl**
City_id
County_id ->county_tbl
City_name

但是,由于阿拉斯加和路易斯安那这两个州没有县,我在实施它们时会遇到问题。而且我还读到,一个州内可能有城市没有县,或者属于两个县(不知道这是不是真的)。

设计数据库的最佳方法是什么?

更新更多信息:
我有一个用户将注册服务到特定城市(在一个州内)。当我检索数据时,我希望能够显示所服务的城市以及县。用户和服务的城市之间是多对多的关系,城市和县之间是一对多的关系。

即:
John K - 在 state_A 服务(以下所有县市都属于 state_A) - 服务的城市
:City_A (county_x)、City_B (County_Y)、City_C (County_Y)
-服务的县:County_X、County_Y

另外,我能否在一个查询中检索用户的信息和所有服务的市县?

4

1 回答 1

0

只需将行政区、教区和县(或任何其他命名约定)视为同一事物。USPS 对他们一视同仁,人口普查局也对他们一视同仁。美国大多数政府(和非政府组织)需要生成关于县或统计区域的任何类型的报告,都依赖基于这些单位的 MSA 或 CBSA 代码,所有这些单位都被称为县 - 即使他们可能有其他本地名称。

对于阿拉斯加,以下是所有行政区:

ANCHORAGE
BETHEL
ALEUTIANS WEST
LAKE AND PENINSULA
KODIAK ISLAND
ALEUTIANS EAST
WADE HAMPTON
DILLINGHAM
KENAI PENINSULA
YUKON KOYUKUK
VALDEZ CORDOVA
BRISTOL BAY
MATANUSKA SUSITNA
NOME
YAKUTAT
FAIRBANKS NORTH STAR
DENALI
NORTH SLOPE
NORTHWEST ARCTIC
SOUTHEAST FAIRBANKS
JUNEAU
HOONAH ANGOON
HAINES
PETERSBURG
SITKA
SKAGWAY
KETCHIKAN GATEWAY
PRINCE OF WALES HYDER
WRANGELL

对于路易斯安娜,这里是所有教区:

JEFFERSON
SAINT CHARLES
SAINT BERNARD
PLAQUEMINES
ST JOHN THE BAPTIST
SAINT JAMES
ORLEANS
LAFOURCHE
ASSUMPTION
SAINT MARY
TERREBONNE
ASCENSION
TANGIPAHOA
SAINT TAMMANY
WASHINGTON
SAINT HELENA
LIVINGSTON
LAFAYETTE
VERMILION
SAINT LANDRY
IBERIA
EVANGELINE
ACADIA
SAINT MARTIN
JEFFERSON DAVIS
CALCASIEU
CAMERON
BEAUREGARD
ALLEN
VERNON
EAST BATON ROUGE
WEST BATON ROUGE
WEST FELICIANA
POINTE COUPEE
IBERVILLE
EAST FELICIANA
BIENVILLE
NATCHITOCHES
CLAIBORNE
CADDO
BOSSIER
WEBSTER
RED RIVER
DE SOTO
SABINE
OUACHITA
RICHLAND
FRANKLIN
MOREHOUSE
UNION
JACKSON
LINCOLN
MADISON
WEST CARROLL
EAST CARROLL
RAPIDES
CONCORDIA
AVOYELLES
CATAHOULA
LA SALLE
TENSAS
WINN
GRANT
CALDWELL
于 2013-06-11T16:25:18.793 回答