3

我正在研究一個應用程序,它需要將一個或多個附加字段添加到表中以便跟蹤用戶定義的信息。此附加信息僅用於報告目的(Crystal Reports),並且不會影響應用程序的行爲。該字段的數據由外部應用程序填充。如何爲用戶定義字段(UDF)設計數據庫?

處理這些附加信息的最佳方法是什麼?下面是基於關閉其他SO答案的一些選項:

  1. 實體 - 屬性 - 值(?這會不會矯枉過正,好像有EAV的許多評論家)
  2. 添加額外的列表(不知道如何實體框架會喜歡這個)
  3. 每個UDF創建一個新表,並使用父表的主鏈接
+0

已經實現了一個相對高效的EAV系統,我寫了一些關於他們在這裏:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/11/19/what -is-so-bad-about-eav-anyway.aspx – 2012-02-22 21:27:13

+0

我們在說很多表的新字段,或者只是一個表的幾個新字段?這個數據庫目前有多大,你期望它增長很多? – northpole 2012-02-22 21:28:06

+0

@northpole最有可能將一個或兩個字段最大添加到單個表中。但可以根據客戶增長。 – Jason 2012-02-22 21:30:23

回答

0

如果我理解正確的要求,你需要一個數據點保存,將來自外部的信息應用程序及其結構在設計時未定義。如果這是正確的,那麼我會建議使用xml數據類型。通過選擇此項,將來在插入新的鍵值對時不需要重新設計數據庫。 Crystal報表應該很容易包含這個列的xsl。

希望這有助於和好運