如何为用户定义字段(UDF)设计数据库?

3
我正在开发一个应用程序,需要在表中添加一个或多个附加字段来跟踪用户定义的信息。这些额外的信息仅用于报告目的(Crystal Reports),不会影响应用程序的行为。此字段的数据来自外部应用程序。
如何处理这些附加信息是最好的方式?以下是一些选项,基于其他SO答案:
1.实体-属性-值(这是否过度设计?似乎有很多EAV的批评者) 2.向表中添加附加列(不确定Entity Framework是否支持) 3.为每个UDF创建新表,并使用父表的主键进行链接

我已经实现了一个相对高效的EAV系统,并在这里写了一些关于它们的内容:https://sqlblog.org/blogs/aaron_bertrand/archive/2009/11/19/what-is-so-bad-about-eav-anyway.aspx - Aaron Bertrand
@northpole 最可能只会向单个表添加一两个字段。但是根据客户的要求,这可能会增加。 - Jason
@northpole 不是的,但在我得知这个信息之前我已经发布了。 - Aaron Bertrand
@AaronBertrand,感谢您提供的链接,非常有帮助。 - Sefier Tang
可能是如何为用户定义的字段设计数据库?的重复问题。 - Neil McGuigan
显示剩余6条评论
1个回答

0
如果我正确理解您的要求,您需要一个数据点来保存来自外部应用程序的信息,并且其结构在设计时未定义。如果是这样,那么我建议使用XML数据类型。通过选择这个,当新的键值对被插入时,您将不需要重新设计您的数据库。水晶报表应该很容易地包含这一列的XSL。希望这可以帮助您,祝您好运。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接