我正在看一個問題,該問題涉及用戶將帶有各種字段結構的記錄列表上傳到應用程序中。第二部分將允許用戶指定字段來捕獲信息。是否使用多個表格來處理用戶定義的字段?
這是一個超越任何事情的一步,完成了這一點,我將自己設計一個靜態RDMS結構。在某些方面,所有記錄將被視爲相同,因此每個記錄都會有一些共同的字段。幾乎所有的查詢都將在這些常用字段上運行。
我的第一個想法是動態地爲每個導入生成一個新表,併爲每個數據捕獲字段spec指定另一個表。然後爲應用程序中的每個記錄創建一個帶有guid的主表以及常用字段,指定數據導入到的表的名稱以及包含數據捕獲字段的表的名稱。
有關動態生成表中的字段的更多信息(元數據?)可以存儲在xml或「屬性」表中。
這意味着當用戶登錄到應用程序時,我將動態選擇要呈現給用戶的數據表,並且如果數據庫不僅表示多個用戶,而且還表示多數據庫。
我的問題是還有其他方法來解決這種可變的現場問題,即時通訊我在這裏下了一條無人看管的路徑?
我相信EAV將要求我有一個表,定義每個導入/數據捕獲規範的字段,然後使用導入字段值數據定義另一個表,這看起來不切實際。
是的,我動態地向recorddata表添加一列。到目前爲止,它對我們來說工作得很好,我們有一個字符定義了許多不同的字段類型,所以在添加一個字段,該字段的表看起來像'record_id,field_1_t'(t表示文本),添加後看起來像' record_id,field_1_t,field_2_t'或'field_1_t,field_1_i'(i代表整數)。 – Earlz 2010-01-20 23:39:11
請注意,「record_field」表是保存「record_data」表的元數據的表。 – Earlz 2010-01-20 23:39:49
我們實際上有不同的「記錄」類型,對於每種類型,我們都把它放在一張表中,這樣就有希望每桌不會超過50-80列......它仍在開發中,請說明目前支持什麼樣的用法,因爲我們現在都不太確定。 (雖然它看起來很有希望它應該很快) – Earlz 2010-01-20 23:47:42