一、擴充套件字段表
乙個表的字段可能並非一成不變,系統的執行、需求的變化等客觀條件可能會需要增加其他字段,如何在不直接修改表設計的前提下滿足需求呢?該擴充套件字段表的思想就是將列設計轉化為行設計,欄位的增加表現為記錄的增加。當然這種方式也不是萬能的,對於需要排序、查詢和索引的字段最好還是通過新增表字段的方式增加。
欄位名稱
資料型別
屬性允許空
預設值備註
ext_id
int (4)
pk ai
擴充套件字段編號
ext_guid
char (36)
newid()
擴充套件欄位guid
ext_table
varchar (50)
''擴充套件字段關聯表名
ext_code
varchar (50)
''擴充套件字段編碼
ext_name
nvarchar (100)
''擴充套件欄位名稱
ext_desc
nvarchar (200)
''擴充套件字段描述
ext_order
int (4)
0擴充套件字段序號
ext_necessary
int (4)
0擴充套件字段是否必需
ext_data_len
int (4)
0擴充套件字段資料長度
ext_data_type
varchar (50)
''擴充套件字段資料型別
ext_form_type
varchar (50)
''擴充套件字段表單型別
ext_form_url
varchar (300)
''擴充套件字段資料**url
ext_data_regex
varchar (100)
''擴充套件字段正規表示式
ext_data_tip
varchar (100)
''擴充套件字段提示
ext_state
int (4)
1擴充套件字段狀態
表1:base_extension(擴充套件字段表)
二、擴充套件欄位值表
上述方式實現的字段的動態增加,那字段的值該如何儲存呢?當然通過另乙個新表來儲存。
欄位名稱
資料型別
屬性允許空
預設值備註
prop_id
int (4)
pk ai
屬性編號
ext_code
varchar (36)
''擴充套件字段編碼
ext_guid
varchar (36)
''擴充套件欄位guid(冗餘)
ext_table
varchar (50)
''擴充套件欄位表名(冗餘)
object_guid
varchar (36)
''物件guid
prop_value
nvarchar (4000)
''屬性值
表2:base_property(擴充套件欄位值表)
三、綜述
比如乙個商家表,設計之初已新增商家編號、商家guid、商家名稱、商家位址、商家**等字段,後期又需要增加營業時間、所在區域、商家優惠說明等擴充套件字段,使用上述兩個表可以提公升系統的可擴充套件性和可配置性。
通用基礎表邏輯設計(一) 配置 列舉和類別
一 配置表 乙個系統中往往有很多需要可自定義的引數,比如 名稱 聯絡位址等基礎引數以及各種系統執行引數等等,這個時候就需要單獨乙個引數配置表來儲存這些引數。可能最先想到的就是乙個引數加乙個字段,但引數的個數不一定是固定的,如此設計需要修改資料庫 修改程式,可擴充套件性不夠。所以可以把這種列設計轉換為...
Trafodion表物理設計與邏輯設計問答
1 問題 primary key 與 clustering key區別?解答 primary key是為了保證記錄唯一性而設計 特殊應用中不希望按照主鍵進行排序儲存,則需要指定clustering key 單獨指定聚簇鍵使用store by語句 區別 建立表的時候指定primary key,那麼cl...
數字邏輯設計基礎 事件 邊沿檢測
在數字邏輯設計中常常需要在邊沿或者訊號發生變化的時候做出相應的動作,因此,邊沿檢測就和重要。在其中 如果訊號來自於同乙個時鐘域,那就不需要進行同步化處理,如果訊號來自於不同的時鐘域,就要就行同步化處理之後再進行檢測 邊沿檢測主要分為 1 上公升沿檢測 2 下降沿就檢測 3 上公升 下降沿 雙邊 檢測...