有没有更好的固定链接解决方案

时间:2012-12-25 22:44:48

标签: c# asp.net-mvc

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

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

有更好的解决方案吗?

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  

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

有什么问题?

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

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

答案 2 :(得分:0)

虽然这是作为一个评论开始的,但我认为它越来越大,所以这里再次......

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

你在担心什么?如果你期望有几百万页,那就是7个字符。如果你期望有超过几十亿页,那就是9到10个字符..我觉得很容易管理。

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

答案 3 :(得分:0)

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

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

如果您不想使用此类格式,则可能会在网址中intlong