1

我正在用 C# 和 ASP.NET MVC 开发一个网站,人们可以在其中管理自己的网页。目前我正在使用 StackOverflow 的永久链接解决方案,但我不确定这是否适用于我的情况,因为人们会不断地添加和删除页面。这意味着 pages 表中的 id 会变得非常大。

示例:mydomain.com/page/ 17745288223 /my-page-title

有更好的解决方案吗?

4

4 回答 4

0

好吧,您可以使用某种散列来提高查找效率。例如,您可以计算页面标题、创建日期、用户信息等的 SHA-1 哈希 - 就像 git 对提交 ID 所做的那样。

或者您可以使用简单的数字,但使用十六进制数字或字母数字字符(如某些 url 缩短服务)将它们转换为一些紧凑的表示形式。

于 2012-12-25T22:48:22.667 回答
0

这意味着 pages 表中的 id 会变得非常大。

那有什么问题?

an 的最大值int也非常大(刚刚超过 20 亿),所以我怀疑它会达到任何限制,除非您计划拥有数百万用户,每个用户有数千页。

如果您仍然担心,那么您可以使用long(64 位整数)。它可以处理数以百万计的用户数以百万计的页面。请注意,地球上的人口只有几十亿。

于 2012-12-25T22:48:37.187 回答
0

虽然这是作为评论开始的,但我认为它越来越大,所以它又来了……

页面 id 解决方案似乎很好。

你在担心什么?如果您期望有几百万页,那就是 7 个字符。如果您期望超过几十亿页,即 9 - 10 个字符。我认为这很容易管理。

您还可以将其表示为十六进制并将其减少到最多 8 个字符以适应最多 2^32 个不同的 id。

于 2012-12-25T22:48:45.047 回答
0

我认为对于您的情况(用户创建页面),将单个用户创建的所有页面放在他/她自己的路径下实际上更加用户友好,即:

 mydomain.com/page/{username/nickname/some-name-selected-by-user}/my-page-title

如果您不想使用这种格式,则 URL 中的intorlong可能会这样做。

于 2012-12-25T22:56:10.593 回答