VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1205|回复: 2

学习讨论贴:财务/进销存软件数据库设计

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-14 14:00:01 | 显示全部楼层 |阅读模式
偶现在在设计一个小的销售软件的数据库,遇到一些问题,望各位大虾能照顾照顾,多加关注此帖,后面会整理,方便初学者学习。问题会一个一个的提,多谢!

问题1:
    [结算单设计问题]
    描述:对出入库单的明细数据进行结算,结算过程中涉及到了冲回单据,比如说入库单的冲回,原因是入库单分两种:临时入库和正式入库,临时入库的单据在结算之后,根据结算的数量进行冲回,并生成正式入库单据。举例如下:
    入库单据(NO0001)、品种(K01)、数量(100)、单价(5元)、方式(临时)、日期

    出库单,多张,记录出库的品种、数量等等。操作如下:

    <1>结算时,品种K01的数量是 50,那么生成一张冲回单(NO0002)、品种(K01)、数量(-50)、单价(5元)、方式(临时)、日期

    <2>再生成一张正式入库单(NO0003)、品种(K01)、数量(50)、单价(5元)、方式(正式)、日期

    <3>维护客商品种结算表:修改客商的品种的数量(出库时不直接处理的,等到结算才处理)


    结算的大致过程如上,当然复杂一点的,就是一张结算单的结算数量要冲回多张入库单(因为涉及到批次问题,更加复杂,暂时不讨论)

    问题:生成结算单时做上面动作,要是这张结算单作废,怎么回滚?一般正规的设计师怎么处理这种问题的?事务?如何设计?


回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-20 15:00:01 | 显示全部楼层
你的问题应该是不难解决的,一般在ERP或MIS系统中都有遇到你说的这种情况!一般情况下,解决这类问题主要是在表结构的设计中加以解决。比如:你所讲的“结算单作废”,数据库在处理时,一般会增加一个“是否作废”的字段用来标识。在结算的时候,将该字段纳入WHERE语句中即可。
另外,你的表结构中应该增加一个入库或出库的货物批次字段,以方便判断,同时也方便结算时使用。
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-20 15:45:01 | 显示全部楼层
一般在财务上都有"红冲"这种办法,也就是把作废的单据,并不删除而是作个红冲的标记,在计算或统计时,不对已经红冲的数据进行操作
你只需要在表中增加一个这样的标记字段(标记列)就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表