lzth.net
当前位置:首页 >> 在数据库中存枚举值,用数字还是字符好 >>

在数据库中存枚举值,用数字还是字符好

一般在主表上存储的是枚举值,另建立一个值对应说明表,查询时关联取出说明内容

如果数值是尽可能连续的可以用一个数组存放对应的字符串 类似 char *xxx[] = {"zero", "one", "two", "three",}; 如果不是写一个函数类似 char *f(int x) { switch (x) { case 1: return "one"; case 5: return "five"; case 10: return "ten";

枚举在C语言标准里面定义的就是整型,不管哪个编译器都遵循这个标准.

Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.注意:枚举类型的基类型是除 Char 外的任何整型,所以枚

char:固定长度,例如:char(6),你输入的字符小于6时,它会在后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.存储字符:ANSI 数字英文存储:最多能存储8000个.汉字存储:4000个汉字-----------------------------分割--------

其实枚举真实在计算机中的运算和存储就是用后面的数字表示.你想,如果用"BigInt"这个字符串代表枚举值,需要6个字节,用int只要4个字节.事实上,枚举的本质就是给不同数字一个有意义阅读和记忆的名字.

1、这个类型可以多种:int, char(n) -- 只要约定好就行,存贮枚举值的代码2、枚举类型的允许值,可以由DB保证(比如在tradeInfo.tradeType上加约束);也可以只是由程序来控制 -- DB中加上约束会强壮一些,但会牺牲性能;3、为了软件界面的易读性,通常需要让枚举值可读.每个枚举值对应的文本最好存贮在DB中.这个称为MasterData.可以建一张表存贮4、如果有对应的主数据表,前面2中的约束,就可以改为Foreign Key至于JAVA编程,枚举类型的处理,可以使用常量,也可以更优雅地定义一个类.

int类型或者unsigned int型比较适合

需要定义成字符型,一般可用char、varchar、nchar、nvarchar等,具体需要看实际需求.这几种类型的比较:CHARCHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,

请问楼上的如果不用int identity,都用char和varchar怎样方便的确保数据的唯一性并且在数据量大的时候保证查询性能,以及在索引上控制开销

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com