testpage-2668FF87-0A3A-4cac-B9AB-2367D17A76C3.aspx 页面标题/唯一标识符
我的数据库,我设置我使用Ints作为唯一标识符,所以我从来没有遇到过这个问题:
testpage-1.aspx 页面标题/唯一标识符(int)
你有什么建议吗?答案 0 :(得分:3)
将带有GUIDS的映射表与较短的名称或表中具有较短名称的列挂起。 Guids保证是唯一的,但这并不意味着它们会产生最佳的唯一标识符。
答案 1 :(得分:0)
您的面向公众的网址应始终清晰易读。 (使用“slugs”,如上所述)这可确保您的每个页面为用户生成一致的内容(即,它不是基于会话的),并且以他们能够理解的方式对搜索引擎可见。
在数据库方面,只需跟踪额外的“url”列并编写查询以利用它而不是“视图”的GUID,但在内部使用GUID进行UPDATE查询。 :)
答案 2 :(得分:0)
我经常看到的不是暴露实际的guid,而是对它进行编码并更改一些字符:
public String ConvertBase64( Guid input ) {
String sResult = Convert.ToBase64String(input.ToByteArray(), Base64FormattingOptions.None);
sResult = sResult.Replace("/", "_").Replace("+", "-");
sResult = sResult.Substring(0, 22);
return sResult;
} // method::ConvertBase64(guid)
转换回来时,你会做相反的事情。
public String Base64ToGuid( String input) {
input = input.Replace("_", "/").Replace("-", "+");
result = new Guid(Convert.FromBase64String(input + "=="));
}