我在CakePHP中有一個列出業務的應用程序。我有一個商業模型/控制器,以及一個state_list模型/控制器。然而,我想要更加詳細,所以當用戶點擊國家頁面時,它會列出該國家所在城市的所有企業所在的城市。
然後,當他們點擊某個城市時,它會顯示一個列出所有企業的頁面在那個特定的城市。
如果沒有所有城市列表的數據庫表,我該如何做到這一點?沒有在CakePHP中的數據庫中列出城市
回答
爲此更好的數據庫結構將是沿着這一線的東西:
Table: Location
id
parent_id
name
type
Table: Business
id
location_id
...
你的城市和國家要形成tree:
America
California
San Francisco
New York
...
Japan
Tokyo
...
例如:
Business (..., location_id => 5, ...)
Location (id => 5, parent_id => 2, name => San Francisco, type => city)
Location (id => 2, parent_id => ..., name => California, type => state)
這樣,每個企業都屬於一個城市,並隱含到一個國家和一個國家,一切都有一個很好的ID。您也不能因在日本加利福尼亞州紐約開展業務而犯錯誤(目前可能)。
鑑於你有什麼,你只能通過一個名稱搜索過濾城市:
$listOfBusinessesInState = $this->Business->find('all', array(
'conditions' => array('Business.state_id' => $state_id),
'fields' => array('Business.city'),
'group' => array('Business.city')
));
$listOfCitiesInState = Set::extract('/Business/city', $listOfBusinessesInState);
謝謝,這正是我需要的建議。我必須重新辦理我的辦公地點,因爲我必須延伸到其他國家。我假設當我添加一個企業時,它會檢查該州/該國的城市是否存在,如果不存在,我會將其添加到表格中。 – xtine 2010-08-18 08:06:45
@xtine對。不過,您需要小心生成拼寫變體的重複項。所以,界面明智的,你可能需要使用下拉列表(1.選擇國家,2.選擇狀態,...)或做自動完成或一些這樣的。 – deceze 2010-08-18 08:14:43
你會如何建議我從目前的位置到更新的基於樹的版本去數據庫遷移腳本?而且,當我將基於樹的版本彈出到我的腦海時,我想到了自動完成下拉菜單。 :) – xtine 2010-08-19 05:45:15
- 1. 在Android SQLITE數據庫中存儲新城市天氣數據並更新現有城市天氣數據
- 2. 在座標R中列出城市
- 3. 試圖找到所有沒有直飛城市的城市(PostgreSQL)
- 4. 關於城市信息的數據庫
- 5. 從N個城市列表中選擇一個城市/城市的方式
- 6. 數據庫距離城市表
- 7. 國家/城市/城鎮+計數列表
- 8. 我需要國家,國家數據庫中的表,城市
- 9. 數據沒有存儲在數據庫中cakephp
- 10. 是否可以在Google地圖中獲取城市A和城市B之間的城市列表
- 11. 免費國家/城市建議列表/數據庫
- 12. 如何在python中獲取城市(geonameid)的附近城市?
- 13. SQL Server:如何從數據庫中選擇雙城市
- 14. SPARQL - 列表城市
- 15. HTML頁面中的城市列表
- 16. 在WPF中代表城市
- 17. 搜索城市選項沒有出現在Android Studio
- 18. 美國州/縣/城市/郵編數據庫中的數據限制?
- 19. ASP.NET MVC按國家/地區列表獲取沒有數據庫的城市列表。
- 20. Symfony2:按國家/地區列出城市
- 21. wp8中的城市地址
- 22. 數據庫引擎沒有出現在SQL Server列表中
- 23. MKReverseGeocoder返回不是城市的城市?
- 24. 無法在rails中加載城市gem的JSON數據
- 25. 我在哪裏可以找到城市/社區數據庫?
- 26. 在cakephp數據庫中保存數據
- 27. 數據庫表項目和他們的生產在MySQL數據庫中的城市建設遊戲
- 28. 英國城鎮/城市的php數組
- 29. Google天氣城市列表
- 30. 獲得州和縣所屬的城市與geonames數據庫?
什麼是你的數據庫結構目前是什麼樣子?你如何確定一個企業在哪個城市/州? – deceze 2010-08-18 07:46:50
商戶表:身份證,姓名,地址,城市,州_id,郵編,國家,網址; 狀態表:ID,名稱,縮寫。當我列出一個州頁面時,我可以抓住所有擁有該州ID的企業。我只是不知道如何按城市列出,而沒有做同樣的事情。 – xtine 2010-08-18 07:49:20