以下从三个方面完成MIS的设计:
一、 了解客户需求
我这里说的客户需求不是指客户的业务要怎么做,对于程序员来说过多的关心客户业务只能混乱思想,这里我将程序员和系统分析员拆开,客户业务如何完成,应该是另外的工作,不是程序设计,所以,程序员要做的工作应该是根据定好的需求去完成程序。我这里讲的需求是指客户的数据需求,也就是将客户所有工作环节上的信息收集起来,比如第一个环节客户需要录入什么样的数据,多少个字段可以让他录入,将来需要什么样的报表,报表上包含的数据在什么地方录入的之类的问题都要搞清楚,还要问清楚对于每一个录入部分是否包含由系统提供的数据,比如流水号,时间之类的。接下来就是要将客户提供的所有数据做出第一范式(除非客户提供了没有关系的数据),然后对这些数据进一步分析,定出数据结构,完成关系数据库的设计。
二、 界面设计
界面设计有两个前提:
1. 已经存在可以使界面和后台数据做成无关性的设计思想及对应的方法。
2. 存在可由用户自定义的报表设计
将界面元素定义到数据库中,根据不同的窗体调用不同的模版,自动生成界面。
界面生成后可按照当前界面所获取的纪录填充界面元素。
按照功能调用可以将数据更新致内存表或者实际数据库。
报表打印的数据由当前界面对应的记录条件和打印所需要的纪录集自动显示。
三、 权限设定
权限部分是整个MIS的最核心问题,我将其分为两个部分,横向权限和纵向权限
横向权限:
用户界面对应的用户权限
每个用户对应每个界面的每个可更改元素对应可视,可用的权限通过更改对应的权限达到控制数据更新,默认值体现,及更改状态的处理。
纵向权限:
用户界面对应数据项目的权限
每个用户在浏览数据时根据数据项对应的数据和权限对应条件做比较得出权限从而达到对已经完成的业务控制用户权限的目的。
对于以上设计可以完全抛开客户业务,让程序员只关心数据,由系统分析员去根据业务整理用户可用的数据以及辅助数据,并提供相应的报表,程序员则注重数据之间的关系以及数据结构的设计,从而达到动态控制用户需求的目的。
以上都是个人意见,希望前辈们和有经验的朋友指正其中问题。