数据库枚举,数据库字段,枚举
大家好,今天小编来为大家解答数据库枚举这个问题,数据库字段,枚举很多人还不知道,现在让我们一起来看看吧!
在数据库中存枚举值,用数字还是字符好
这个要看你的枚举,是仅仅一次只能选择一个的?还是一次可以选择多个的.
例如你的
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#中的枚举怎么使用
枚举类型是一种的值类型,它用于声明一组命名的常数。
(1)枚举的声明:枚举声明用于声明新的枚举类型。
访问修辞符 enum枚举名:基础类型
{
枚举成员
}
基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long或 ulong类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
(2)枚举成员
枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
如何通过数据库字段动态生成枚举
利用反射(Reflection),通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。
数据库字段,枚举
这个要放点代码。但是这种方式没有必要,其次就放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();
}
}
}
---------------------
第四:如果你们领导都同意用枚举来映射表,你也没必要修改,顺水推舟吧!
出错你在摆平,也让你出名一把!你自己先提前想好方案!
文章到此结束,如果本次分享的数据库枚举和数据库字段,枚举的问题解决了您的问题,那么我们由衷的感到高兴!