【发布时间】:2011-11-05 23:49:19
【问题描述】:
我正在编写一个数据访问层,我只想返回每个请求所需的数据。假设您总共可以检索 100 个属性,但一个正常的请求可能只需要其中的两个或三个。
所以我在请求中添加了一个参数,用于指定要返回的属性,并且只会从数据库中提取这些数据。
正常的请求将返回 1,000 - 10,000 行的列表。我现在最关心的是如何有效地退货。
数据将在我的 .NET 项目中“内部”使用,但也可能被序列化为 XML 和 JSON,因此我不希望有 98 个空属性,而实际上只有 2 个是填充数据。
那么,用于创建此模型的最佳技术(在性能和“开销大小”的情况下)是什么?
更新: 所以一个属性实际上可以有三个状态。如果它从未被要求,它应该以某种方式被删除,如果它被要求它应该是 null 或实际值。
【问题讨论】:
-
这取决于您为实体考虑的 API 类型。
-
@Peter Forss:实体的数量很重要,但同样重要的是每个实体有多少属性(除了每个实体引用的实体,等等)。
-
@Doc Brown:嗯,有哪些 API?这是一种通用的数据检索 API,我们将在其中不断添加属性。
-
@casperOne:我的错,我实际上是指行,对于最终用户来说,它总是(99.9% 的时间)同一个实体(即使数据可能是从数据库中的不同表中检索到的) .
-
@Peter Forss:对于用户来说它可能是一个实体,但实体上有多少个属性?这可能会对性能产生不利影响,具体取决于每行有多少属性。还是每行只有一个属性,所有行都分配给实体?