代码之家  ›  专栏  ›  技术社区  ›  Chathuranga Chandrasekara

SQL Server字符串列作为唯一键

  •  1
  • Chathuranga Chandrasekara  · 技术社区  · 15 年前

    使用URL作为唯一密钥是否有任何缺点或已知缺点?

    4 回复  |  直到 15 年前
        1
  •  4
  •   Community CDub    7 年前

    通常,最好使用数值而不是字符串作为表键。请参见此处有关此主题的讨论: Database Primary Key C# mapping - String or int .

    至于使用URL,只要您有一些基本规则来避免插入相同(等效)URL两次,就不会给您带来任何问题。也就是说,数据库将解释 “www.google.com” " http://www.google.com "

        2
  •  1
  •   marc_s    15 年前

    正如其他人所说——我绝对不会使用像URL这样的长字符串作为SQL Server表上的主键/集群键——但当然,您应该可以在该列上设置唯一的约束,以确保不会得到任何重复!

    您可以执行唯一约束或唯一索引-最终结果几乎相同(唯一约束也将在幕后使用索引)。唯一索引的优点是,您可以在单独的表中将其作为外键引用,因此我几乎总是使用这种方法:

    CREATE UNIQUE NONCLUSTERED INDEX UIX_YourTable_URL ON dbo.YourTable(urlField) 
    

        3
  •  0
  •   Rippo    15 年前

    我仍然会在表上创建一个聚集列键,例如一个自动编号,然后在URL列上创建一个唯一索引。

        4
  •  0
  •   terR0Q    15 年前

    如果需要分页,则可以使用数字主键。但您仍然可以在将来添加数字索引器。所以URL成为PK没有任何障碍。