人生做的第一个项目

这是我毕业以来做的第一个项目,是某公司的某个具体的项目,那么,就针对这个项目的原型图,理出我自己的思路来。
原型图
当我们看到原型图时,会想到要见哪几张表,这几张表的外键关系如何,怎么取舍这些外键(当然,这一般情况下,是技术总监做的事,虽然,我们是初级程序员,但也应该考虑到表之间的关系,因为,我们不可能做一辈子的初级程序员吧。)

表结构

zq_bank_card  银行卡表,包含付款给工人的银行信息
zq_company    公司信息,以后做SAS会用的
zq_financial_flow  财务流水表,比如付款、收款、工资、运营流水等
zq_financial_flow_pictures  财务流水对应的图片
core_picture                框架封装起来的图片
zq_financial_subject  财务科目表
zq_gathering         款项表
zq_gathering_pictures  款项表对应的图片
zq_money_change        变更表
zq_money_change_pictures  变更表对应的图片
zq_salary                 工资表
  1. 银行卡表:银行卡属于谁,因而需要人或物的外键id;我们也会在项目收支里的付款管理中,用到银行卡这张表,谁付款给谁的哪张银行卡。
  2. 公司信息,以后也许会在SAS系统中用得到。
  3. 财务流水,财务流水用来记录项目收支的收款管理和付款管理,运营收支当中的收款管理和付款管理,发放工资的流水。我本来打算用到款项表,里面有两个枚举类型,比如收支类型对应的项目收支和运营收支,款项管理对应的付款管理和收款管理,但这样很不好,因为,我们财务科目表,财务科目表(树状结构)中就有对应的二级id。
  /**
     * 科目全路径
     */
    @Column(name="full_Id_path")
    private String fullIdPath;

比如项目收支中的收款管理有个二级id,即level对应的层级,我们只要存储full_id_path这个就可以了。因而,款项表和款项表对应的图片就可以删除了。
这里写图片描述
4. 图片,图片是专门拿出来存储的,为什么呢?根据数据库的优化来说;定值一般单独存放,这样效率比较快一点,变值专门存放,因为图片的路径大小不确定,需要单独存放比较合适,这样查询效率就比较高一点。同时呢,如果表结构当中的哪些字段比较常用,我们可以将其设置为索引。工资表中经常按年月查询,我们可以将年月设置为索引
5. 变更表,比如我们最初设计的应收款为60000,后来变为56000,再后来变为50000.这就需要有个记录,当然,也需要科目表的外键,否则,不知道是项目收支当中的收款管理,还是运营收支当中的收款管理。
财务科目表和变更表、财务流水表的关系
6. 工资表,工资时发给谁的,需要员工的id,通过员工的id,关联到银行卡。


看到原型图应该想到的事

当我们看到原型图,首先想到某个按钮有什么作用,它会关联到哪几张表,如果涉及到高并发时,又该如何保证数据的安全性;如果涉及到事务德华,如何保证事务的一致性,原子性、隔离性和持久性?

  • 当我们添加员工工资时,涉及core_user表(员工表),因为需要知道这个员工;还需要银行卡表,找到对应的银行卡,打钱到银行卡中。
    这里写图片描述
  • 当我们项目收支当中对应的收款管理信息,涉及到哪几张表?款项分期和应收款对应着money_change这张表;实收款就对应着财务流水这张表,并且需要统计实收款。
    这里写图片描述
    通过图片上的分析,我们可以设计序列图:
    这里写图片描述
    当用户查询时,前端设计人员通过一个接口将数据传递给后台,后端拿到数据进行以系列的操作,将数据一Json格式的方式返回给前端,前端才把数据以一定样式展示出来。

注意事项

  1. 每天都要提交代码,这样,可以协作完成,否则,极容易造成代码冲突。
  2. 熟悉idea的快捷键,git提交代码的方式
  3. 打开内网的vpn,否则,idea会报错误的。

猜你喜欢

转载自blog.csdn.net/lvoelife/article/details/81260157