[图文]图6.3会计事项-Fowler分析模式的剖析和实现
1
00:00:02,090 --> 00:00:05,160
Fowler在书里面也说了,6.4
2
00:00:05,290 --> 00:00:07,540
这里也说了
3
00:00:08,030 --> 00:00:11,340
不是常用的
4
00:00:12,520 --> 00:00:15,060
更倾向用6.2,实际上就是6.3了
5
00:00:15,760 --> 00:00:18,460
6.3更加通用
6
00:00:20,240 --> 00:00:23,640
6.3这里面
7
00:00:23,770 --> 00:00:26,280
他就说了下一个问题
8
00:00:27,280 --> 00:00:29,200
会计事项和分录之间的
9
00:00:29,210 --> 00:00:30,600
相互强制关系
10
00:00:30,610 --> 00:00:34,340
就引入了一个先有鸡还是先有蛋的问题
11
00:00:36,150 --> 00:00:37,100
巴拉巴拉,这里
12
00:00:38,780 --> 00:00:41,940
就是说,是先有分录
13
00:00:41,950 --> 00:00:43,260
还是先有会计事项
14
00:00:44,380 --> 00:00:49,120
他这里给出一个解决方案,就是说
15
00:00:50,230 --> 00:00:53,560
由会计事项来创建分录
16
00:00:53,570 --> 00:00:57,910
分录必须在会计事项里面来创建
1
00:00:01,200 --> 00:00:05,220
就拿刚才+5000
2
00:00:05,230 --> 00:00:06,540
-2000,-3000
3
00:00:06,550 --> 00:00:10,140
这三个分录来说
4
00:00:10,150 --> 00:00:13,740
这三个都应该在一个会计事项里面来创建
5
00:00:16,190 --> 00:00:19,470
所以如果这样
6
00:00:19,640 --> 00:00:25,550
它就可以说会计事项的平衡是可以满足的
7
00:00:27,710 --> 00:00:30,940
这样就会带来一个什么样的变化
8
00:00:30,950 --> 00:00:36,770
就是说,会计事项是创建分录
9
00:00:36,780 --> 00:00:37,930
它是知道分录的
10
00:00:40,580 --> 00:00:48,090
而原来的账户里面创建分录
11
00:00:48,100 --> 00:00:49,690
这个就不能再用了
12
00:00:50,600 --> 00:00:51,620
账户只能是什么
13
00:00:52,180 --> 00:00:55,220
被动的被分录关联过去
14
00:00:56,260 --> 00:00:58,850
这个也是合理的
15
00:00:58,860 --> 00:01:00,730
就是说事实上
16
00:01:00,740 --> 00:01:03,850
我只需要这个账能够做平
17
00:01:03,860 --> 00:01:05,910
我有一笔+5000的
18
00:01:06,720 --> 00:01:09,560
那边有-2000,-3000
19
00:01:10,190 --> 00:01:12,230
这个账能够做平就可以了
20
00:01:12,960 --> 00:01:14,400
至于背后关联的账户是哪一个
21
00:01:14,410 --> 00:01:18,120
实际上并不是那么重要
22
00:01:18,130 --> 00:01:19,760
因为这种是灵活多变的
23
00:01:20,360 --> 00:01:20,780
24
00:01:22,020 --> 00:01:23,560
没准2000 3000
25
00:01:25,700 --> 00:01:27,970
刚才那个例子是2000 3000
26
00:01:27,980 --> 00:01:29,770
都是进到同一个账户
27
00:01:30,630 --> 00:01:31,620
没准
28
00:01:31,630 --> 00:01:33,300
下个月还是2000 3000
29
00:01:33,310 --> 00:01:35,700
但是2000可能跑到A账户
30
00:01:35,710 --> 00:01:37,530
3000跑到B账户
31
00:01:37,980 --> 00:01:39,070
也有可能
32
00:01:40,260 --> 00:01:45,430
但是分录的值在一个会计事项里面
33
00:01:45,440 --> 00:01:47,050
它应该是做平的
34
00:01:47,060 --> 00:01:49,040
总和应该是0的
35
00:01:50,840 --> 00:01:54,760
Fowler在书上描述的
36
00:01:54,770 --> 00:01:55,800
就是这么多了
37
00:01:56,820 --> 00:01:59,540
巴拉巴拉,你看他说,提供一个操作
38
00:01:59,550 --> 00:02:00,620
39
00:02:00,630 --> 00:02:05,790
可以是带参数的数组
40
00:02:06,710 --> 00:02:07,820
41
00:02:08,460 --> 00:02:10,330
我们就按照他说的这个描述
42
00:02:11,750 --> 00:02:16,490
用代码来反映一下这里面的说的内容
43
00:02:17,350 --> 00:02:20,070
我们来看一下我们的数据库和代码
44
00:02:20,240 --> 00:02:24,000
我们就针对6.3这个图来做
45
00:02:25,160 --> 00:02:27,550
首先看数据库
46
00:02:29,040 --> 00:02:30,350
首先我们来看数据库
47
00:02:31,000 --> 00:02:33,030
映射过来,主要这三个表了
48
00:02:34,240 --> 00:02:34,990
三个表
49
00:02:37,570 --> 00:02:38,600
分录是多
50
00:02:38,950 --> 00:02:39,700
会计事项是1
51
00:02:39,710 --> 00:02:42,170
所以分录里面有会计事项ID
52
00:02:42,740 --> 00:02:45,000
分录是多,账户是1,有账户ID
53
00:02:47,470 --> 00:02:51,620
这两个是图上没有
54
00:02:51,630 --> 00:02:52,780
但是都要带上的
55
00:02:52,950 --> 00:02:56,370
背后有的,数量这里
56
00:02:58,400 --> 00:03:03,610
数额,这是映射到数据库
57
00:03:05,520 --> 00:03:07,940
接下来,我们来看一下代码的映射