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。

希望这有助于和好运