-1

我见过很多网站,当打开任何页面时,URL 中都没有任何数字 ID 或类似的东西,只有在单词之间带有连字符 (-) 的 URL 字符串。这意味着页面正在从数据库中检索基于字符串的数据。有些 URL 很长。这意味着数据库中该字段上可能没有任何索引(因为它很长)。那么,这是一种有效的方法吗?如果不是,为什么这么多网站都使用这种方法?

4

3 回答 3

2

一些网站,比如这个(stackoverflow)使用一种混合方法,既有数字索引又有url 的字符串规范标题。就像同一页面的网址一样:

stackoverflow.com/questions/15221783/is-it-efficient-way-to-get-all-the-page-data-on-the-base-of-url-string
//          Numeric index -----^                ^-------- canonical title

这样,您就拥有了两全其美、快速的数字索引和语义 seo 友好的规范字符串标题。

于 2013-03-05T10:52:36.057 回答
0

它非常有效,因为您只能索引字符串的前 15 个字符。但是,这种方法通常是错误的,因为唯一的页面应该由唯一的 url 寻址,而页面标题可以编辑。

如果您编辑问题标题,旧网址将使您回到正确的页面。
在您描述的系统的情况下,如果标题被编辑,则无法返回。
因此,一个好的网站永远不会使用它,但是,就像 stackoerflow 一样,它将同时使用唯一索引和 slug。

于 2013-03-05T10:53:11.893 回答
-1

它的效率并不低,因为框架的路由系统将大部分搜索工作排除在外。例如,products/en-gb/mens/shirts/light-blue-full-sleeve-twill-shirt可以分解为 products 类别,然后是 en-gb,然后是 men 和 shirt,这些类别将相互链接,并且产品链接到 shirts 类别,因此您不会搜索整个数据库,但无论如何都是它的一个子集。

除非您在网站上有数百万个页面和类别,否则数据库可以在您眨眼之前轻松搜索数千条记录。

于 2013-03-05T10:51:28.660 回答