多套账之间要求隔离,每套帐的功能都一样,每一个套账就相当于一个分公司
有两个方案:
1.每加入一个分公司,就创建一个database,用来存储一个公司的业务。
2.给每一个需要分开的表加上DbId字段用来区分,相当于分库存储。
方案1:考虑到未来大数据量存储
方案2:简单够用,没有考虑到未来大数据存储(未来有多远????,未来会变成什么样,也不知)
优选方案2:
这个设计目的是针对集团-分公司,分公司独立核算模式,分公司的业务好解决,但到最后基本上会涉及到集团层面的综合分析
这要求有查询的条件统计,例如:部门“01”表示行政部,应该所有的分公司的部门“01”都表示行政部,只有这样,统计结果才有意义
这延伸出一个问题,如何表示集团,集团信息如何被share(集团控制还是分公司控制)
有两种方案处理这种情况
1:DbId==null表示这个项目是集团的,所有的分公司都可以直接用,例如查询部门的条件为:select departmentCode,departmentName from department where dbid=1 or dbid is null
2: DbId==null表示这个项目是集团的,集团所做的改动都会进行分发,也就是说有十个公司,当集团更改一条记录,就会同步修改到其它10条记录。
具体要采用那种方案,需要考虑在企业运行过程中,是否需要中途改变对象的share状态(呵呵,俺也不知道)。