asp.net – 如果我只是在做一个查找表,我应该使用自动生成的主键
我有一个有两个varchar(Max)列的表
Column 1 Column 2 ----------------------- URLRewitten OriginalURL 我的网址部分重写为asp.net webforms网站. 当一个网址进来时,我会检查它是否在表格中,如果它是我使用的是OriginalURL. 我的问题是,如果我正在做的是查询表中的URL,并且数据库中没有其他表将链接到此表是否需要专用的主键字段?像一个自动编号?这会使查询更快吗? 以及如何让查询运行得更快? 编辑:我对URLRewitten有一个独特的约束. 编辑:我正在使用这张桌子的方式.. >查询新请求何时进入..搜索URLRewitten以查找OriginalURL 这就是我所做的所有查询..此刻. 两列一起是唯一的. 解决方法
你需要一把钥匙吗?是.总是.但是,看起来在你的情况下,OriginalURL可能是你的主键(我假设对于OriginalURL中的给定值,URLRewritten的值不会超过一个).
这就是所谓的“自然键”(数据本身的一个组成部分本质上是唯一的).这些可能很方便,但我发现它们在大多数情况下通常比它们的价值更麻烦,所以是的,我会推荐某种不透明的键(意思是与行中的数据无关的键),除了识别单行).您是否想要自动编号取决于您自己.它当然很方便,虽然标识列有自己的优点和缺点. 现在我想我会建议创建两件事: >标识列表的主键>对OriginalURL的唯一约束,以强制数据完整性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 如何通过HTML类(Razor语法)在MVC视图中创
- asp.net-mvc – 如何通过URL传递日期,为我的Action读取MVC?
- asp.net – IE bug无效源HTML5音频 – 解决方法
- asp.net-mvc-5 – nuget中用于与WEB API集成的Ninject包中有
- asp.net – 错误:远程服务器返回错误:(401)未经授权
- asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中ActionFilt
- asp.net-mvc-3 – Visual studio web dev express挂起添加实
- asp.net-mvc – 如何在MVC3中存储用户首选项
- asp.net-mvc – 在stackoverflow.com上永不过期的会话,除非
- 403发布asp.net MVC后禁止
- asp.net-mvc – ASP.NET MVC中具有动态数量的tex
- ASP.net会员 – 添加角色
- asp.net-mvc – AppHarbor的反向代理导致SSL和ap
- asp.net – Visual Studio 2013更改现有项目的身
- asp.net-mvc – 所有请求获取HTTP错误401.2 – 未
- asp.net – 使用OAuth在Web API中进行身份验证
- asp.net-mvc-3 – ASP.NET MVC 3.0构建视图为64位
- asp.net-mvc – ASP.NET MVC中UpdateModel的正确
- 使用asp.net中的web api通过http进行身份验证
- 如何利用ASP.net IIS 7.5中的浏览器缓存