2009-11-25 41 views
3

我正在創建一個表單,我想知道在以更人類可讀的格式顯示值方面是否有顯着的優勢;例如:查詢字符串 - 使用行ID或人類可讀的值?

的index.php用戶=泰德&位置=紐約

不是:

的index.php用戶= 23423 &位置= 34645

一方面,讓查詢字符串更具可讀性,可以讓用戶和搜索引擎更好地理解wh但是這也會在服務器端創建更多的工作,因爲我必須通過除了唯一標識以外的其他東西來追蹤關聯的行。

例如,首先找到'newyork'的id在能夠在需要location_id的其他行上工作之前。我總是傾向於儘可能少的工作。

編輯:決定與可讀性。我想我可以隨時使用mysql查詢緩存來加快速度,如果有必要的話。

+0

你打算選擇一個答案嗎? ;) – Citizen 2009-11-27 23:29:45

回答

2

儘可能使用人類可讀的值。只要確保清理輸入。

編輯:是的,如果您有很多選擇,這可以並且仍然應該爲SEO目的完成(如果它值得您的話)。即使用戶有很多選擇,您也應該知道它們是什麼(或者限制是什麼),以便您可以正確清理輸入。例如,如果他們正在選擇狀態,則可以知道全部50.如果他們只是編寫自己的文本,請確保在您的結尾是唯一的文本。

+0

當你有很多價值時,你是否認爲這會減慢速度?假設我在查詢字符串中有15個值。我可能需要查找這些值中的15個ID(可能不是,但你看到了我所得到的)。這是很大的開銷。也許我應該考慮重新設計我的數據庫。 – Brad 2009-11-25 17:22:06

+0

如果你有這麼多的價值,那麼我會考慮使用一個帖子,除非你真的需要他們的網址。 – jeffa00 2009-11-25 17:23:48

+0

一旦你在URL中獲得了很多值,它就不是人類可讀的任何方式...... – jeffa00 2009-11-25 17:25:01

0

一個好的經驗法則是存儲數據的id和顯示爲人類可讀的文本等

0

取決於你的目標。

如果你正在談論的博客,你希望每個人都看到everthing(並很容易找到),那麼人/搜索引擎可讀的格式是一個明智的選擇。

如果這些頁面被鎖定在登錄後面,那麼它並不重要。你可以做更簡單的數據庫。

對於大多數互聯網應用程序,我會犯錯,因爲這將有助於搜索引擎。

+0

它是任何人都可以搜索產品的搜索表單的一部分。目前該表格有大約10種不同的搜索選項可供使用,但更多將會在「高級」搜索中添加。 – Brad 2009-11-25 17:27:00

0

您不應該在任何合理的數據庫引擎上擔心任何通常大小的應用程序的效率。爲用戶編寫應用程序,而不是查詢優化器。 QO可以更輕鬆地照顧自己。在不太可能發生的情況下處理優化問題。

0

我將從一個不同的方向來。在我看來,如果希望用戶能夠通過編輯URL而不是使用UI來使用URL來更改其參數,那麼該URL應該是可讀的。一個例子是https://www.coolreportingapp.com/accountReport.jsp?account=ABC&month=200911。在這個例子中,用戶可以「輕鬆」更改他們查看的帳戶或月份,而不會與UI搞亂。這當然意味着您需要每次驗證URL參數,無論如何您都應該這樣做。如果您不希望用戶更改URL參數,則需要混淆和散列值並使用散列來驗證它們沒有。

0

說真的,恕我直言,在你的例子中,沒有比其他更可讀。普通用戶是否知道「&」是"user=ted&location=newyork&"中「變量」的分隔符?他們需要知道存在類似變量的東西嗎?考慮到這一點,顯示數字或單詞有什麼區別?

如果你真的想要可讀的URL,你應該建立SEO友好的網址(人類可讀)。請記住,即使是「dashes vs underscores」最簡單的問題也很重要。