我在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. 閱讀城市和街道到數據庫中沒有API
- 2. 在Android SQLITE數據庫中存儲新城市天氣數據並更新現有城市天氣數據
- 3. 在座標R中列出城市
- 4. MongoDB的查詢在數據庫中找到城市總數
- 5. 試圖找到所有沒有直飛城市的城市(PostgreSQL)
- 6. 關於城市信息的數據庫
- 7. CakePhp:數據庫中的新字段沒有出現在查找
- 8. 從N個城市列表中選擇一個城市/城市的方式
- 9. 數據庫距離城市表
- 10. 城市夏令時數據庫
- 11. 國家和城市數據庫
- 12. 國家/城市/城鎮+計數列表
- 13. 我需要國家,國家數據庫中的表,城市
- 14. 數據沒有存儲在數據庫中cakephp
- 15. 是否可以在Google地圖中獲取城市A和城市B之間的城市列表
- 16. 免費國家/城市建議列表/數據庫
- 17. 在CakePHP中填充具有數據庫列名稱的列表
- 18. 如何在python中獲取城市(geonameid)的附近城市?
- 19. SQL Server:如何從數據庫中選擇雙城市
- 20. CakePHP中的數據庫沒有得到數據返回
- 21. SPARQL - 列表城市
- 22. 在配置沒有數據庫的cakephp時出錯
- 23. 在Facebook上列出某個國家的所有城市FQL
- 24. HTML頁面中的城市列表
- 25. Google地圖中的城市列表?
- 26. 在WPF中代表城市
- 27. osclass - 我如何只列出位於城市的位置列表中的一些城市和地區?
- 28. 搜索城市選項沒有出現在Android Studio
- 29. 城市數據/統計數據Api
- 30. 美國州/縣/城市/郵編數據庫中的數據限制?
什麼是你的數據庫結構目前是什麼樣子?你如何確定一個企業在哪個城市/州? – deceze 2010-08-18 07:46:50
商戶表:身份證,姓名,地址,城市,州_id,郵編,國家,網址; 狀態表:ID,名稱,縮寫。當我列出一個州頁面時,我可以抓住所有擁有該州ID的企業。我只是不知道如何按城市列出,而沒有做同樣的事情。 – xtine 2010-08-18 07:49:20