我有一个类,我们称之为它TableOwner
,它的一个字段是一个DataTable
名称列(也是主键)和一个金额列。所以有一个主键列和第二个非主列。
TableOwner
在我的程序中,我创建了一个实例集合。集合本质上是一个集合:逻辑上没有TableOwner
' 的顺序,只关心每种存在多少。每个DataTable
都填充了不同的数量值,但它们都具有相同的主键。
例如,imagineTableOwner
用于存储银行账户上的数据。每个实例代表一个帐户,然后DataTable
可能会记录帐户中每种货币的数量。对于每个帐户,该帐户中的美元、欧元或英镑的数量可能不同,但对于每个帐户,都有这三种货币的数据,即使金额为 0(帐户中没有钱)或null
(可能缺少数据) ) . 所以基本上我想要一个二维表或矩阵,但是我的类层次结构阻碍了我这样实现它。
处理这一切的明智方法是什么?我可以想到以下方法:
1)先做一个DataColumn
,然后将它传递给所有新的实例,TableOwner
用于他们自己DataTable
的。缺点:如果我后来决定要从主键中删除一行(例如,用户决定“你知道吗,我不再关心欧元,转储所有数据并删除该列。”),我必须遍历整个集合并从每个TableOwner
表中逐一删除该行。
2)使DataTable
所有TableOwner
实例都使用一个(也许使它成为一个静态字段)。该表将有许多列,而不是一个金额列,例如 Amount1、Amount2 等。每个TableOwner
实例在初始化时都会创建自己的数量列,并记住它的名称以备后用——现在删除一行是一个基本的数据库操作。缺点:似乎不优雅和“错误”。
如您所见,两者都有缺点。有没有更好的办法?
如果问题非常基本或措辞奇怪,我深表歉意,因为我对数据库知之甚少。