資料庫表擴充套件字段設計

2021-10-23 11:35:30 字數 1734 閱讀 1468

一、擴充套件字段表

乙個表的字段可能並非一成不變,系統的執行、需求的變化等客觀條件可能會需要增加其他字段,如何在不直接修改表設計的前提下滿足需求呢?該擴充套件字段表的思想就是將列設計轉化為行設計,欄位的增加表現為記錄的增加。當然這種方式也不是萬能的,對於需要排序、查詢和索引的字段最好還是通過新增表字段的方式增加。

欄位名稱

資料型別

屬性允許空

預設值備註

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欄位設計 書 資料庫字段設計

一 上下架欄位 很多產品都有上下架的需求,比如商品管理,廣告管理,圖書管理等等。一般我們都用乙個狀態字段來表示他的狀態來,不同的狀態下我們可以進行不同的業務操作。但有時候真實的狀態又與時間有關。某時間到了就上架,某時間到了就要下架。如果我們只用乙個狀態字段來表示狀態,那麼我們就需設計乙個定時任務,每...