【发布时间】:2012-03-13 06:43:23
【问题描述】:
我正在开发一个应用程序,该应用程序需要将一个或多个附加字段添加到表中以跟踪用户定义的信息。此附加信息仅用于报告目的(Crystal Reports),不会影响应用程序的行为。此字段的数据是从外部应用程序填充的。
处理这些额外信息的最佳方式是什么?以下是基于其他 SO 答案的一些选项:
- Entity-Attribute-Value(这会不会过大?似乎有很多 EAV 的批评者)
- 向表中添加额外的列(不确定 Entity Framework 会如何)
- 为每个 UDF 创建一个新表并使用父表的主表进行链接
【问题讨论】:
-
已经实现了一个相对高效的 EAV 系统,我在这里写了一点:sqlblog.com/blogs/aaron_bertrand/archive/2009/11/19/…
-
我们是在谈论许多表的许多新字段还是一个表的几个新字段?这个数据库目前有多大,您预计它会增长多少?
-
@northpole 很可能最多将一个或两个字段添加到单个表中。但可能会根据客户而增长。
-
@AaronBertrand - 很棒的文章,我很喜欢。但是,OPs 应用程序似乎并不是一个需要热更改的 SaaS 解决方案。如果单个表只有两个字段,您仍然认为 EAV 是解决所有所需开销的好方法吗?
-
@northpole 没有,但我在知道这些信息之前就发布了。
标签: sql-server entity-framework database-design schema user-defined-fields