0

我目前正在一个尚未实现实体框架的 Silverlight / MS SQL 项目中工作,我想知道在这种特殊情况下处理计算字段的最佳实践是什么。

考虑到某些外部系统也可能直接在数据库中或通过 Web 服务使用我的数据,这是我现在可以看到的 3 个选项。

1) 强制任何外部系统通过 Web 服务使用数据并仅在对象中创建所有计算字段。

2) 在数据库视图中创建计算字段,并在每次需要计算值时将对象与服务器重新同步。

3)复制对象和数据库视图中的计算规则。

任何其他建议也将受到欢迎。

4

2 回答 2

3

我建议遵循两个原则:数据解耦和最小功能重复。两者都建议将您的计算仅放在一个地方,并为它们提供已经计算好的服务。所以我会在数据库中实现计算,并通过网络服务为它们提供服务。

但是,您必须考虑您的具体情况。例如,如果计算非常繁重,您可以将它们委托给客户端以节省服务器资源。这甚至可能是您使用 Silverlight 的原因。我在一个项目中处于类似情况,我发现最好的折衷办法是将原始数据推送到客户端并让它进行繁重的计算。

于 2011-06-15T12:04:32.590 回答
1

为这类问题找到最佳实践或方法是很困难的,因为环境改变了以前的好方法可能开始变得不那么有用了。也就是说,在可能的情况下,我会做任何与数据库级别相关的数据,包括计算字段。这样,您就知道无论您在哪里查看数据,都会看到相同的结果。因此,您的 Web 服务、SQL 报告和其他任何需要查看或接收数据的东西都会看到相同的结果。

于 2011-06-15T12:01:18.823 回答