『壹』 在数据库中存枚举值,用数字还是字符好
这个要看你的 枚举, 是 仅仅一次只能选择一个的? 还是一次可以选择多个的.
例如你的
order_id order_status
1 SUCS(成功success)
2 PCES(处理专process)
某行数据, 要么就是属 SUCS(成功success) , 要么就是 PCES(处理process)
这种情况下, 用字符是比较合适的。
但是如果枚举是可以选择多个的, 例如:
id desc
1 无党派
2 知识分子
4 少数民族
8 女性
16 ......
这种情况下, 如果一个人, 多个枚举都满足的情况下, 那么这种情况下, 使用 数字 是比较适合的。
也就是
如果某个人,是 无党派汉族女性研究生, 那么枚举值 = 1+2+8
『贰』 c语言中的枚举型什么意思
枚举型是四种基本数据类型之一。常量、字符型、布尔型可以用来表达数,字符,真假的描述。
枚举类型在C#或C++,java,VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中是一种构造数据类型。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。
(2)数据库中枚举类型数据扩展阅读
注意事项:
1、赋值运算 COLOR:=RED ;注意类型一致不能出界;
2、关系运算 IF
3、输入 枚举变量的值只能用赋值语句获得,不要用READ语句;
4、输出 不能直接用WRITE语句直接输出枚举元素,系统会认为它是一个
5、未定义的变量名;必须赋给一个枚举变量,然后输出给变量的值;
『叁』 数据库字段,枚举
这个要放点代码。但是这种方式没有必要,其次就放50分,实在少点,回头你看我的回复
是否值50分?
----------------------
第一:如果代码类似如下
columns[int(TC_User.id)]
columns[int(TC_User.Name)]
columns[int(TC_User.Sex)]
columns[int(TC_User.Address)]
如果从持久实体直接获取,虽然有点效率,但是你可以试验一下如下查询:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='T_CRD'
以上T_CRD 是表名,你看到有一列是ORDINAL_POSITION:
这个是按照数据库设计表的自然序排列,之后你就看到,只要在设计视图中换换位置就改变了这个值。
本身在DBA优化里有一项就是数据类型同项归类提速,结果代码过于拘泥,让DBA根本不能实施这项工作。这是一方面:
--------------------------------------------------
第二:其次就是使用反射来获悉枚举列名。你可以自己试验一下:还不如最原始的if else快,性能差个几百倍。
--------------------------------------------------
第三:即使元数据析构table,也是类似如下方式,如下是linq上下文生成列的方式,使用的是特性描述,别看原始,这确是大智慧。
[Column(Storage="_RpNo", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
public string RpNo
{
get
{
return this._RpNo;
}
set
{
if ((this._RpNo != value))
{
this.OnRpNoChanging(value);
this.SendPropertyChanging();
this._RpNo = value;
this.SendPropertyChanged("RpNo");
this.OnRpNoChanged();
}
}
}
---------------------
第四:如果你们领导都同意用枚举来映射表,你也没必要修改,顺水推舟吧!
出错你在摆平,也让你出名一把!你自己先提前想好方案!
『肆』 枚举类型映射到数据库中以什么存在
Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。 注意:枚举类型的基类型是除 Char 外的任何整型
『伍』 数据库的枚举型问题
1、这个类型可以多种:int, char(n) -- 只要约定好就行,存贮枚举值的代码
2、枚举类型的允许值,可以由DB保证(比如在tradeInfo.tradeType上加约束);也可以只是由程序来控制 -- DB中加上约束会强壮一些,但会牺牲性能;
3、为了软件界面的易读性,通常需要让枚举值可读。每个枚举值对应的文本最好存贮在DB中。这个称为MasterData。可以建一张表存贮
4、如果有对应的主数据表,前面2中的约束,就可以改为Foreign Key
至于JAVA编程,枚举类型的处理,可以使用常量,也可以更优雅地定义一个类。
『陆』 关于数据库中枚举字典类型的查询问题
select name,count(favor) from member where name='这个人名字' group by name
『柒』 在数据库中存枚举值,用数字还是字符好
这个要看你的 枚举, 是 仅仅一次只能选择一个的? 还是一次可以选择多个的.
例如你的
order_id order_status
1 SUCS(成功success)
2 PCES(处理process)
某行数据, 要么就是 SUCS(成功success) , 要么就是 PCES(处理process)
这种情况下, 用字符是比较合适的。
但是如果枚举是可以选择多个的, 例如:
id desc
1 无党派
2 知识分子
4 少数民族
8 女性
16 ......
这种情况下, 如果一个人, 多个枚举都满足的情况下, 那么这种情况下, 使用 数字 是比较适合的。
也就是
如果某个人,是 无党派汉族女性研究生, 那么枚举值 = 1+2+8