一、擴充套件字段表
乙個表的字段可能並非一成不變,系統的執行、需求的變化等客觀條件可能會需要增加其他字段,如何在不直接修改表設計的前提下滿足需求呢?該擴充套件字段表的思想就是將列設計轉化為行設計,欄位的增加表現為記錄的增加。當然這種方式也不是萬能的,對於需要排序、查詢和索引的字段最好還是通過新增表字段的方式增加。
欄位名稱
資料型別
屬性允許空
預設值備註
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、商家名稱、商家位址、商家**等字段,後期又需要增加營業時間、所在區域、商家優惠說明等擴充套件字段,使用上述兩個表可以提公升系統的可擴充套件性和可配置性。
資料庫設計字段
型別 範圍 無符號 大小範圍 有符號 用途tinyint 0,255 1位元組 128,127 小整數值 smallint 0,65 535 2位元組 32 768,32 767 大整數值 mediumint 0,16 777 215 3位元組 8 388 608,8 388 607 大整數值 in...
mysql 資料庫字段動態擴充套件
主要有一下幾種方案 當資料庫中需要增加乙個欄位的時候,直接在資料庫中增加,並修改相應的 優點 操作簡單,易懂 缺點 每增加乙個欄位都需要修改資料庫表結構,修改 而且在一張大表進行操作的時候,還可能需要很長時間。把需要擴充套件的字段統一放到乙個字段裡面。各個字段通過json的方式組成乙個大的字串。這樣...
mysql欄位設計 書 資料庫字段設計
一 上下架欄位 很多產品都有上下架的需求,比如商品管理,廣告管理,圖書管理等等。一般我們都用乙個狀態字段來表示他的狀態來,不同的狀態下我們可以進行不同的業務操作。但有時候真實的狀態又與時間有關。某時間到了就上架,某時間到了就要下架。如果我們只用乙個狀態字段來表示狀態,那麼我們就需設計乙個定時任務,每...