加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 类型字段的INT或CHAR

发布时间:2021-01-08 10:12:02 所属栏目:MsSql教程 来源:网络整理
导读:表的最佳设计是什么,Type字段是int还是char(1)?换句话说,给定此架构: create table Car( Name varchar(100) not null,Description varchar(100) not null,VehType .... not null) 为了使VehType成为int或char(1),它是否更有效(性能明智)?假设你有五种类

表的最佳设计是什么,Type字段是int还是char(1)?换句话说,给定此架构:

create table Car
(
    Name varchar(100) not null,Description varchar(100) not null,VehType .... not null
)

为了使VehType成为int或char(1),它是否更有效(性能明智)?假设你有五种类型的汽车,你应该使用递增值0 – > 4,或类型的字符(比如说’v’,’s’,’c’,’t’,’m’)?

如果它不止于此,我将使用一个单独的Type表并具有外键关系,但我认为没有必要.

我注意到sys.objects目录视图使用类型字段的字符.这有什么理由吗?我只是在这里勉强抓住,是不是我觉得更舒服?

解决方法

你通常使用1字节的tinyint

> char(1)会稍慢,因为比较使用整理
>困惑:什么是S:SUV或Saloon or Sedan还是体育?
>在添加更多类型时使用字母限制您.见最后一点.
>我见过的每个系统都有一个以上的客户端,例如报告.将V,S变为“Van”,“SUV”等的逻辑将需要重复.使用查找表意味着它是一个简单的JOIN
> extendibility:再添加一个类型(“F”表示“Flying car”),您可以将一行添加到查找表中或更改大量代码和约束.而你的客户端代码也是因为这必须知道V,S,F等是什么
>维护:逻辑分为3个位置:数据库约束,数据库代码和客户端代码.使用查找和外键,它可以在一个地方

在使用单个字母的正面…呃,看不到任何

注意:有一个相关的MySQL question about Enums.建议也使用查找表.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读