查询字符串 - 使用行ID还是人类可读的值?

时间:2009-11-25 17:17:45

标签: query-string readability

我正在构建一个表单,我想知道以更易读的格式显示值是否有显着优势;例如:

  ?

的index.php用户=泰德&安培;位置=纽约

而不是:

  ?

的index.php用户= 23423&安培;位置= 34645

一方面,让查询字符串更具可读性允许用户和搜索引擎更好地了解它们的位置,但这也会在服务器端创建更多的工作,因为我必须追踪通过除其唯一ID之外的其他内容关联的行。

例如,在能够处理需要id的其他行之前,首先找到'newyork'的location_id。我总是喜欢尽可能少地为数据库提供工作。

编辑:决定兼顾可读性。我想我可以随时使用mysql查询缓存来加快速度。

6 个答案:

答案 0 :(得分:2)

尽可能使用人类可读的值。请务必清理输入。

编辑:是的,如果你有很多选择,这可以而且应该仍然可以用于搜索引擎优化目的(如果它值得你)。即使用户有很多选择,您也应该知道它们是什么(或限制是什么),以便您可以正确地清理输入。例如,如果他们选择状态,你可以知道所有50个。如果他们只是在编写他们自己的文本,请确保你的文本唯一。

答案 1 :(得分:0)

一个好的经验法则是将数据存储为id并将其显示为人类可读的文本等。

答案 2 :(得分:0)

取决于你的目标。

如果你正在谈论一个博客,你希望每个人都能看到它(并轻松找到它),那么人类/搜索引擎可读的格式就没那么明白了。

如果这些页面被锁定在登录后面,那么它并不重要。你可以在数据库上做更容易的事情。

对于大多数互联网应用,我会误读可读性,因为这对搜索引擎也有帮助。

答案 3 :(得分:0)

您不应该担心任何合理数据库引擎上任何典型大小的应用程序的效率。为用户编写应用程序,而不是为查询优化器编写。 QO可以更轻松地照顾自己。在不太可能发生的问题中处理优化问题。

答案 4 :(得分:0)

我将来自不同的方向。在我看来,如果希望用户能够使用URL通过编辑URL而不是使用UI来更改其参数,则URL应该是可读的。一个例子是https://www.coolreportingapp.com/accountReport.jsp?account=ABC&month=200911。在此示例中,用户可以“轻松”更改他们查看的帐户或月份,而不会弄乱UI。这当然意味着您需要每次都验证URL params,无论如何都应该这样做。如果您不希望用户更改URL参数,则需要对值进行模糊处理和哈希值,并使用哈希值来验证它们没有。

答案 5 :(得分:0)

说真的,恕我直言,在你的例子中,没有一个比另一个更可读。普通用户是否知道“&”是"user=ted&location=newyork&"中“变量”的分隔符?他们需要知道存在类似变量的东西吗?考虑到这一点,显示数字或单词有什么不同?

如果你真的想要可读的网址,你应该建立SEO友好的网址(人类可读)。请记住,即使是“dashes vs underscores”这个简单的问题最终也很重要。