『壹』 在資料庫中存枚舉值,用數字還是字元好
這個要看你的 枚舉, 是 僅僅一次只能選擇一個的? 還是一次可以選擇多個的.
例如你的
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