请问,ID 字段应该用什么数据类型?谢谢!

mansohu 2014-04-16 02:36:18
请问,ID 字段中的内容都数字形式,可以选择设置该字段为以数据类型:
1. 设置为INT,优点更容易为新增条目设置ID(每条加1即可),查询语句比较简练,另外我觉得会不会查询更快些
2. 设置为nvarchar,优点是可以在前面补0,比如:00123,从而保证字段中所有内容长度一致
请问:
1. 我应该用哪种方式?为什么?
2. 是否还有其它更好的思路?
谢谢!
...全文
5910 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen870201 2014-04-17
  • 打赏
  • 举报
回复
自增的话,就整形
纸飞机_ 2014-04-17
  • 打赏
  • 举报
回复
發糞塗牆 2014-04-16
  • 打赏
  • 举报
回复
另外从性能上来说,定长的数据类型更好,碎片也少。见过国外的一些专家建议,超过10个字符的,就用变长类型,小于的,用定长。
發糞塗牆 2014-04-16
  • 打赏
  • 举报
回复
有n和无n主要在n开头的类型可以存储多国语言,没n的只能存储安装时的本地区域语言及英文,比如繁体的操作系统上装繁体的sqlserver,可能存简体中文就变成乱码。另外,n开头的比没有n开头的,存储空间大一倍,也就是n开头的数据存得少。 至于varchar/nvarchar与char/nchar相比,前者是变长,只要不超过定义,那么存储的空间就是实际的数据大小,而后者,假设你定义了10,但是你存了一个字符,那么sqlserver在分配空间的时候,还是以10来分配。
mansohu 2014-04-16
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
数值类型通常就够了,另外字符串的话,如果不是涉及多语言,尽量使用varchar、char,而不要用nvarchar/nchar。存储空间大
那请问,varchar、char,和 nvarchar/nchar 有什么样的区别啊?分别适合用在什么地方?谢谢!
lzw_0736 2014-04-16
  • 打赏
  • 举报
回复
用bigint吧
xdashewan 2014-04-16
  • 打赏
  • 举报
回复
如果数据类型定为数字形式的话,那么用自增列是不错的选择,因为内容长度一致什么的程序都能实现,不用为了芝麻丢掉西瓜。如果不使用数字形式的话,可以使用uniqueidentifier保证唯一,数据是Guid类型
發糞塗牆 2014-04-16
  • 打赏
  • 举报
回复
ID字段的类型很大程度依赖于你要来存什么,如果是单纯的数值,用数值型,但是如果是用来存订单之类的数据,数值型就不通用了
發糞塗牆 2014-04-16
  • 打赏
  • 举报
回复
数值类型通常就够了,另外字符串的话,如果不是涉及多语言,尽量使用varchar、char,而不要用nvarchar/nchar。存储空间大

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧