我正在處理一個特定位置的應用程序 - 將其視爲一個商店定位器,其中商店所有者輸入他們的地址信息,其他用戶只能在一定範圍內看到附近的商店。然而,從某種意義上說,這是有點不同的,因爲不需要確切的位置,只需要城市/州(我知道這很奇怪)。我曾考慮過用於存儲位置的模式,並決定使用這種模式。這是一個很好的位置數據庫模式
位置
id -- int
formatted_address -- varchar(200)
is_point_of_interest -- bool
name -- varchar(100) -- NULL
street_number -- varchar(10) -- NULL
street -- varchar(40) -- NULL
city -- varchar(40)
state -- varchar(40)
state_code -- varchar(3)
postal_code -- varchar(10)
country -- varchar(40)
country_code -- varchar(3)
latitude -- float(10,6)
longitude -- float(10,6)
last_updated_at -- timestamp
以下是有關應用程序的一些注意事項:
- 我想保持門打開國際地點
- 我打算使用地理編碼服務來搜索並驗證店主指定的地點
- 我真的只需要lat/lon,bu t其他數據對於顯示商店信息是必需的
- formatted_address字段將包含完全格式化的地址 - 例如,美國新澤西州07073東盧瑟福的50 NJ-120巨人體育場 - 以允許更容易地搜索存儲位置
- 將有可能出現很多重複的領域,因爲每行可有粒度的不同級別 - 例如,
123 Main Street, City, State 12345
是Main Street, City, State 12345
不同,因爲一個具有指定的街道號碼和其他沒有
我知道模式不是很規範化,但我也沒有看到需要對它進行標準化,因爲位置非常複雜,這就是爲什麼我依賴穩定的地理編碼服務(谷歌)。另外,我打算允許自由形式的文本輸入/搜索,因此不需要任何下拉列表。
有沒有人看到任何錯誤或有任何改進,考慮到我所提到的?我可以看到這張桌子越來越大。
請不要在帖子上簽名。 – 2012-01-06 20:06:46
郵政編碼唯一標識一個城市,州/省和國家。我會刪除這些字段,並將它們製作成自己的表格。爲每個郵政編碼指定一個代理鍵唯一整數ID,以防兩個國家共享一個代碼。 – Yuck 2012-01-06 20:07:53
登錄信息?你什麼意思? – BDuelz 2012-01-06 20:07:56