我正在爲我的應用程序構建自定義字段功能。這使得管理員可以添加自定義配置文件字段,供用戶根據網站的需要進行填寫。爲自定義字段動態添加新列
的模式很簡單
field_meta (store some metadata about the field)
================================================
id
type //type of field
field_name //name of the field in the fields table
render_data //Some data to use when rendering the form field
field
===================
id
name //Default field that can't be deleted
address //Default field that can't be deleted
customfield_1
customfield_2
的field_meta
表用於存儲一些元數據字段,這樣我們就可以呈現表單字段。
然後將每個字段存儲在field
表中的新列中。
問題: 爲了便於使用,並且不必處理選擇保留字或使用非英語單詞作爲列名的用戶,我不會要求用戶爲列名選擇名稱。
我目前正在考慮通過字段類型調用列名稱(應用程序(電子郵件,網站,文本,段落文本等)中有相當多的類型,僅舉幾例)並添加一個數字。一些例子:
- EMAIL_1
- _1
- _2
- Text_3
- EMAIL_2
- 等
但是,這種方法的問題是,它需要一個公平的位的工作來拿出專欄名稱。我需要獲取所有列,選擇與我創建的列類型相同的列,解析最大的數字,然後創建列。
有沒有更好的策略來做到這一點?或者也許是一種完全不同的方式來命名消除這些問題的列?
您能否提供一個示例模式?這聽起來有點像EAV。 – F21