gpt4 book ai didi

asp.net - 如果我只是做一个查找表,我应该使用自动生成的主键吗?

转载 作者:行者123 更新时间:2023-12-02 12:17:15 24 4
gpt4 key购买 nike

我有一个表,其中有两个 varchar(Max) 列

Column 1      Column 2
-----------------------
URLRewitten OriginalURL

这是我为 asp.net webforms 站点重写 URL 的一部分。

当一个 url 进来时,我会检查它是否在表中,如果是,我会使用 OriginalURL。

我的问题是,如果我所做的只是查询表中的 url,并且数据库中没有其他表会链接到该表,那么它是否需要专用的主键字段?就像自动号码一样?这会让查询更快吗?

以及如何使查询运行得更快?

编辑:我对 URLRewitten 确实有一个独特的限制。

编辑:我使用此表的方式..

  • 当新请求到来时进行查询..在 URLRewitten 上搜索以查找 OriginalURL
  • 当需要在网站上显示链接时,我会查询 OriginalURL 以查找我应该使用的 URLRewitten url。
  • 向表中添加新网址时,我确保它尚不存在。

这就是我目前所做的所有查询。

两列放在一起将是唯一的。

最佳答案

您需要主键吗?是的。总是。但是,在您的情况下,OriginalURL 可能是您的主键(我假设对于 OriginalURL 中的给定值,URLRewriting 不会有多个值)。

这就是所谓的“自然键”(数据本身的组成部分本质上是唯一的)。这些可能很方便,尽管我发现在大多数情况下它们通常比它们的值(value)更麻烦,所以是的,我会推荐某种不透明的键(意味着与行中的数据无关的键) ,除了识别单行)。是否需要自动编号取决于您。尽管标识列有其自身的优点和缺点,但这确实很方便。

现在我想我建议创建两件事:

  1. 表中标识列的主键
  2. 对 OriginalURL 进行独特的约束,以确保数据完整性。

关于asp.net - 如果我只是做一个查找表,我应该使用自动生成的主键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com