背景:数据库操作中我们经常会遇到级联修改的问题,在之前的一篇文章1里我们探讨了多表级联的一种实现方式,这篇文章我们将探讨另一种实现方式,即通过本地缓存的方式,避免不必要的存储过程。
定义:
事实表:中央表,它包含联系事实与维度表的数字度量值和键。简单说,事实表包括各个维度的ID。
维表:述事实数据表中的数据。维度表包含创建维度所基于的数据。
首先,我们的条件是,级联不是很复杂,存在一张事实表和若干维表,通过单ID将事实表和维表进行级联。思路是:首先本地缓存维表的所有数据,然后将事实表的数据绑定到DataGridView上,将ID列设置为DataGridViewComboBoxColumn,绑定相应的维表,指定值字段和显示字段,让结果自动对应。
举个简单的例子:订单数据库,包含Customers,Products和Orders三个表,之间的逻辑关系如图1所示:
图1 数据库表结构关系
程序运行截图如图2所示:
![程序][2]
图2 程序运行截图
具体的见[代码][3],不再赘述。
参考文献:
PREVIOUS仿QQ、MSN消息提示窗口的实现(C#)
NEXT关于吞灯泡问题