我有一個網站,我想開始使用友好的URL。
因此,而不是:友好的URL數據庫策略
我可以使用:
我知道如何做到這一點的。htaccess的一面,但我不知道如何在數據庫調用的後端設置它,特別是如果公司名稱有可能不是唯一的(例如多個地點)。
我想過檢查重複之後插入友好的URL到數據庫中,但我很好奇,如果有一個更好的辦法
我有一個網站,我想開始使用友好的URL。
因此,而不是:友好的URL數據庫策略
我可以使用:
我知道如何做到這一點的。htaccess的一面,但我不知道如何在數據庫調用的後端設置它,特別是如果公司名稱有可能不是唯一的(例如多個地點)。
我想過檢查重複之後插入友好的URL到數據庫中,但我很好奇,如果有一個更好的辦法
不管它是一個ID還是用戶友好的字符串,如公司名稱,您都需要它是一個唯一的標識符。你不會避免這種情況。
有幾個選項。
或類似URL的其他部分:
然後,你可以很容易地從URL中獲取ID,但它也看起來不錯。
在這種情況下,您在創建數據庫中的公司行時需要一些額外的邏輯。這當然是因爲你必須以某種方式處理重複的名字。例如,您可以在添加一個數字,這個值(Facebook並類似的東西),所以如果steaks_r_us
重複發生時,你會插入值steaks_r_us2
那麼你就必須爲這些公司唯一的URL:
和
'http:// server.com/company/12/steaks_r_us'這是有前途的(顯然,stackoverflow是如何工作的)。我會跑過去一些人 – AndyD273
是的,這是一個很好的解決方案,因爲它不需要你修改你的數據庫模式。這只是一個正確的路由設置問題。 –
您可以創建業務鍵唯一索引(在這種情況下,公司名稱)以防止重複插入到第一位。
我想,但兩企業可以合法地擁有相同的名稱,並且返回一個錯誤,說「抱歉,但您的公司名稱已被使用」似乎不是最好的方式。 – AndyD273
Wheatin有正確的想法。你想要有一個包含兩列的表格,URL和它所指的id。如果你在URL列上創建了一個唯一的鍵,那麼你可能只有一個函數/方法試圖插入帶有內容標識的乾淨的URL;我通常這樣做
###(pseudocode)
function create_unique_url($url, $id) {
try to insert the url, id combination
if success:
return url
else:
key = 1
start a loop
try to insert the url+key, id combination
if success:
return url
key++
}
添加一個數字到底是一個很好的故障安全的方式,以確保您始終獲得一個唯一的URL返回。 Drupal或Wordpress如何處理具有相同名稱的發佈網址。
「http:// server.com/company/1」有什麼問題? –
@DavidBarker想要我在其上工作的人正試圖使網址搜索引擎友好。我想在網址中的名稱改善的事情,或至少使它看起來像有更多的網頁...只使用/公司/ 1似乎並不會改善很多東西... – AndyD273