有没有更好的永久链接解决方案?
本文关键字:链接 解决方案 更好 有没有 | 更新日期: 2023-09-27 17:49:27
我正在用c#和ASP开发一个网站。NET MVC,人们可以管理自己的网页。目前我正在使用StackOverflow的永久链接解决方案,但我不确定这是否会在我的情况下工作,因为人们会不断添加和删除页面。这意味着页表中的id将变得非常大。
例子:mydomain.com/page/ 17745288223 /my-page-title
有更好的解决方案吗?
我认为对于您的情况(用户创建页面),将单个用户创建的所有页面放在他/她自己的路径下实际上更用户友好,即:
mydomain.com/page/{username/nickname/some-name-selected-by-user}/my-page-title
如果您不想使用这种格式,URL中的int
或long
可能就可以了。
那么,您可以使用某种哈希来提高查找效率。例如,您可以计算页面标题的SHA-1哈希,创建日期,用户信息等-就像git对提交id所做的那样。
或者您可以使用简单的数字,但将它们转换成一些紧凑的表示,使用十六进制数字或字母数字字符,如某些url缩短服务。
虽然这开始是一个评论,但我认为它越来越大,所以这里再次…
页面id的解决方案似乎很好。
你在担心什么?如果你想要几百万页,那就是7个字符。如果你期望超过几十亿页,那就是9 - 10个字符。我觉得很好管理。您也可以将其表示为十六进制,并将其减少到最多8个字符,以适应最多2^32个不同的id
这意味着页表中的id将变得非常大。
有什么问题吗?
int
的最大值也非常大(刚刚超过20亿),所以我怀疑它会达到任何限制,除非你计划有数百万用户,每个用户有数千个页面。
如果你仍然担心,那么你可以使用long
(64位整数)。它可以处理数万亿用户,每个用户有数百万个页面。请注意,地球人口只有几十亿。