我很奇怪,爲什麼鏈接配置文件看起來像:爲什麼有些網址同時包含數字ID和名稱?
http://stackoverflow.com/users/ID/NAME
不是簡單:
http://stackoverflow.com/users/ID
甚至更好:
http://stackoverflow.com/users/NAME
還能有幾個用戶使用相同的名稱?或者一個用戶可以有多個名字?
我很奇怪,爲什麼鏈接配置文件看起來像:爲什麼有些網址同時包含數字ID和名稱?
http://stackoverflow.com/users/ID/NAME
不是簡單:
http://stackoverflow.com/users/ID
甚至更好:
http://stackoverflow.com/users/NAME
還能有幾個用戶使用相同的名稱?或者一個用戶可以有多個名字?
所有的SO-URL都是id/description形式該ID是唯一的,描述是可選的。所以/users/12890/arne-burmeister
與/users/12890/huhu
相同,/questions/420380/why-does-the-link-to-the-user-profile-have-both-id-and-name
與/questions/420380/foo
相同。檢索只使用ID,但對於谷歌排名來說,當用戶/問題/應該被發現的URL發生在URL中時(對於人來說,這更具描述性;-))要好得多。
順便說一句,通過ID檢索比通過這樣一個大的文本字符串更快。當然,如果有人更改他們的用戶名或問題,URL仍然有效。
我假設僅僅在名字字符串上進行數據庫查找會比在主鍵上進行數字查找更加昂貴,即使名稱列已編入索引。然後添加該名稱以使URL更具用戶和搜索引擎優化。
這裏有一個uservoice request。如果你想要這樣做,uservoice是討論/投票的好地方。
最後一個斜槓後面的部分似乎與SEO相關(即使URL更具表現力)。
在我測試過的網站上,你可以用你想要的任何東西替換那個部分,它仍然有效。所以url http://stackoverflow.com/users/37086/othername
仍然指向你的個人資料。
嘗試更改或刪除名稱,看看會發生什麼。
我認爲這只是爲了讓您的網址告訴您預期的結果,但應用程序不需要(或實際使用)該信息。
如果我沒有記錯的話,亞馬遜會和他們的書做些非常相似的事情:他們在網址中同時擁有ASIN(他們的內部ID)和書名,但只查看ASIN。
只是猜測:ID允許非常快速檢索配置文件頁面呈現的數據。這個名字只是爲了人類而被忽視,因爲對我來說更簡單的是,你不是rkj,而是phihag,而不是你的ID是37086,我的是35070.
您在SO上的名字並非唯一點擊用戶並鍵入Josh,這裏有我們的整個頁面。所以你必須有ID。至於爲什麼其他人的猜測與我的一樣好。
爲什麼在字符串上查找會很昂貴?這將是更加昂貴,由id,但它不應該是一個問題 - 許多門戶使用這樣的模式... – rkj 2009-01-07 14:44:38
公平的評論,修改爲'更昂貴'。 – roryf 2009-01-07 16:05:32