前段时间做的一个售后管理系统,在当时的需求分析下而设计的数据库已经无法满足新的需求,所有,我花了很长时间去想一个一劳永逸的方法。虽然现在还只是一个雏形,但是还是要写下来。
先说一下具体的需求,无关紧要的在这里就不提了:(1)设备(2)属性(3)项目。大概只有这三个节点,这三个节点的关系是这样子的,每一种设备拥有不同的属性,同一种设备的每一个都拥有不同的属性值。设备属于项目,每一个项目拥有不同种类的设备,多个同一种设备也会存在不同的属性值。
这里不支持画表格,我就简单口述一下自己的想法:
《设备属性表》:表中只存放设备编号、属性名。这张表只用来表示该设备有哪些属性。
《项目设备表》:表中有项目编号、设备编号、设备数量三个字段,用于表示一个项目有哪些设备。
《设备详细信息表》:表中有项目编号、设备编号、属性名、属性值、以及一个用于表示是同一个设备的专属字段。
这里我需要解释下我为什么要这么做,首先在查看项目对应的设备的时候,我们无法知道有多少种设备,更不知道一种设备有多少个。所以,在前台用户UI界面上,我选择了在Repeater控件中放置了GridView,这样在Repeater绑定《项目设备表》,每一个GridView就能根据不同的“设备编号”绑定《设备属性表》及《设备详细信息表》中的内容了。
我再说一下如何绑定每一个GridView。这也就是纠结了我很长时间的问题,每一个GridView都对应一条或者多条“设备编号”,根据设备编号首先从《设备属性表》中取到该设备有哪些字段,再从《设备详细信息表》中把同一个设备的不同属性都取出来,根据从《设备属性表》中取出来的字段拼凑成一个数据表,绑定到GridView中,这样就完成显示功能了。