数据集中的表。数量和冗余

时间:2009-06-09 12:56:51

标签: asp.net dataset

是否有与数据集中使用的表数相关的最佳实践?在关系数据库中,所有表最终都是相关的,因此在创建数据集时我应该具体或广泛?

例如:如果我有产品订单的数据集,我是否还应该包括产品表,以及订单所属的客户表,发货信息表等等;或者我应该只使用基础生产者表和相关的查找表?

5 个答案:

答案 0 :(得分:3)

我建议您只根据需要制作数据集。如果你包含了很多很少使用的无关信息,那么你将会比你应该更频繁地为你的资源征税。

答案 1 :(得分:1)

“我还应该包括......还是应该简单地”

您的用例是什么?人们会对您的数据做些什么?这定义了问题域。它准确定义了必须存在的数据。

阅读本文:http://www.ibm.com/developerworks/web/library/wa-dbdsgn1.html

附加说明。

首先,表格必须映射到问题域中的每个真实世界。询问用户他们做了什么,做出了什么决定,采取了什么行动。这将定义现实世界需要表格的内容。

订单是一件事。订购的产品是一种东西。客户是一件事。

其次 - 要使关系模型起作用 - 您需要对其进行规范化,以便重复元素是表中的行。此外,您需要对此进行规范化,以使每行具有该行中一个不同内容的标识符(“键”)。此外,您需要将其标准化以删除可派生数据。

订单上的一行是与订单相关的东西。

产品的特征是与产品整体相关的东西。

此“规范化”过程为定义关系数据库提供了精确而完整的规则。它会准确地告诉您需要多少个表来表示问题域中的真实事物。

答案 2 :(得分:1)

我不能说这是否是最佳实践,但在我工作的地方,我们拥有超过75个表格的数据集,表现得很好。有些表只有几条记录,但有几条有数千条记录。我们使用二进制远程处理来传输这些表。不确定xml序列化是否会给我们相同(甚至接近相同)的性能。我最后一次检查序列化为磁盘的最大数据集的大小时,它接近3mb。

还有其他人有大型数据集的经验吗?当我们的项目开始时,我从没想过我们需要将这么多包装到一个数据集中,所以我对我们的结果非常满意。

答案 3 :(得分:0)

根据使用/逻辑区域拆分它 如果您同时使用某些表,请将它们放在一起。 如果某些数据只是一个参考数据,那么它应该进入另一个数据集...如果你正在使用订单 - 只加载必要的数据。

无论如何,也许你想看看更方便的数据访问方法,例如ORM?试着看看NHibernate,看它是否适合你的场景......

答案 4 :(得分:0)

我曾经在不同的数据集中拆分模型 然而,这已经咬了我很多次 当不同数据集中的表之间存在关系/引用时,我必须编写大量“修正”代码
1个大数据集imo中唯一的两个问题是较慢的设计体验和较慢的对象实例化。 (几毫秒)

第二个对我来说没问题,因为我每单位工作使用1个数据集。