只是pimping我的CMS,並試圖簡化一些常見的任務,如搜索。 cms有很多不同的模塊,每個模塊都可以用動態路由屏蔽。動態搜索,產生搜索結果鏈接(反向路由)
整個系統是非常穩固,真正靈活,但是這是在搜索結果頁面是造成頭痛。
爲了保持靈活我要把基本數據,以我的搜索類是這樣的:
$search->addTable('content', array('title', 'excerpt', 'body', 'meta_keywords', 'meta_description'));
$search->addTable('event', array('title', 'description', 'tags'));
然後,我的搜索類生成從這些變量一個 SQL查詢,這將很好地找到結果(呃,可能'很好'現在不是最好的詞,因爲結果集包含來自不同表的行,所以我不能分辨哪個行屬於哪個表,因爲所有結果都在單個數組中)
問題是我想要顯示的時候ay結果頁面我需要照顧爲每個結果創建適當的URL,這是非常困難的,因爲我上面提到的系統靈活性(任何內容/模塊都可以用任何東西掩蓋)。
我明白我的問題是非常局部的,也許太含糊回答在其目前的形式,所以我會盡力澄清我的問題有點。我不問你的最佳做法或簡單回答我的問題,但我會非常感激,如果你能提供給我一些好的建議對這些基本問題:
- 貌似生產單一查詢ISN」最好的辦法,因爲我不知道哪一行屬於哪個表(不同的表可能意味着不同的網址製作方法)。另一種方法是分別查詢每個表並將結果存儲在多維數組中(密鑰的表名)。 AFAIK在foreach循環中查詢sql不是可接受的方法。是否有可能標記每個結果行以在單個查詢中反映它的表名?
- 將它傷害了我的SEO,如果我不會手藝真正的(屏蔽,路由)對這些結果的網址,但我顯示非常基本的像(example.com/content/nice-url-slug)。 Google可能會因爲重複而懲罰我的網站 - 這對我來說並不合適。
一如既往,請問,而不是點擊關閉,也許我可以澄清情況多一點。謝謝fabrik。