2017-04-07 20 views
0

我正在創建一個SQL表,它會隨着時間的推移添加列。一個產品表,其中最初的列會stock_countPRODUCT_NAME管理元數據以瞭解SQL表列的使用方式

我還有一個表來描述如何呈現在UI上這些領域,比如股票可能會隨數值輸入字段中顯示,PRODUCT_NAME將一個字符串輸入字段進行渲染。

我想有另一個表來描述這些領域的,是這樣的:

field_schema 
| id | field_name | ui_field | 
| 1 | stock_count | number | 
| 2 | product_name | string | 

起初有將只有幾ui_field類型,但這些後來改變包括下拉菜單,單選按鈕設置等,並保證將這些類型放在他們自己的表格中。

我的問題是,有沒有保持在與產品表中的列同步field_schema表中的任何直接的方法?這是錯誤的方法嗎?

回答

0

這似乎對我來說,存儲的東西奇特的方式。如果你要有一張描述列的表格,那麼請一路走下去,並使用一個EAV模型。也就是說,不是將列存儲在表中的單個行中,而是將每個值存儲在單獨的行中。

這將允許你使用外鍵關係在EAV錶鏈接回列的說明。

或者,你可以使用DDL trigger以確保當添加一個新列,則列描述已經存在於現場描述表。也就是說,任何需要向現有表添加列的應用程序設計似乎都是可疑的。

+0

由於查詢能力的要求,我決定不因爲添加字段將是一個有點控制的過程使用EAV模型。 – J3Y