求普通财务表设计结构

morose999 2010-07-08 09:36:34
财务表中有三个角色:总部、店铺、客户

我现在设计的是有二个表,agent_finance,user_finance,分别是店铺表与客户表

三个角色的关系如下:总部可以给店铺充值,店铺可以给客户充值,总部不能直接给客户充值


这里想问个问题:

怎么设计支付者与接收者的关系?比如我现在是这么设计的(user_finance):

字段列表:
payer:支付者ID -这里可能是店铺ID,也可能是学生ID,因为允许店铺对学生进行+或者-的操作
incepter:接收者ID -跟payer相反
payer_type:支付者类型 -比如agent,或者user,因为payer的值跟incepter的值可能会是同样的


像上面的设计查询的时候就显得很麻烦,比如我要查询店铺ID为2的在user_finance的记录,就要这么写
(payer=2 AND payer_type='agent') or (incepter='2' AND payer_type<>'agent')


不知道大家平时都是怎么设计这类表的?
...全文
179 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongxiutao123 2010-07-08
  • 打赏
  • 举报
回复
财务表中有三个角色:总部、店铺、客户

我现在设计的是有二个表,agent_finance,user_finance,分别是店铺表与客户表

三个角色的关系如下:总部可以给店铺充值,店铺可以给客户充值,总部不能直接给客户充值

claro 2010-07-08
  • 打赏
  • 举报
回复
解决就好
morose999 2010-07-08
  • 打赏
  • 举报
回复
哈哈,我在其它地方问到了,跟zejyu说的差不多
zejyu 2010-07-08
  • 打赏
  • 举报
回复
-- 1 公司总账,记录每代理的余款情况
CREATE TABLE COMPANY_FIN(
AGENT_CODE NVARCHAR(20),
AMOUNT NUMERIC(14,2)
)

-- 2 代理充值及消费明细账,记录代理在公司的每次充值及每期间(代理同公司对账的周期)的消费结果
CREATE TABLE COMPANY_SERIAL(
SN int identity(1,1),
CHARGING_DATE DATETIME, -- 充值或消费结算日期
AGENT_CODE NVARCHAR(20),
AMOUNT NUMERIC(14,4) -- +数为充值,-为消费
)

-- 3 代理总账,记录每个客户在代理商处的使用余额
CREATE TABLE AGENT_FIN(
AGENT_CODE NVARCHAR(20),
CUSTOMER_CODE NVARCHAR(20),
AMOUNT NUMERIC(14,2)
)

-- 4 客户充值及消费明细账,记录客户每次充值和消费的日期和金额
CREATE TABLE AGENT_SERIAL(
SN int identity(1,1),
CHARGING_DATE DATETIME,
AGENT_CODE NVARCHAR(20),
CUSTOMER_CODE NVARCHAR(20),
AMOUNT NUMERIC(14,4)
)


claro 2010-07-08
  • 打赏
  • 举报
回复
消灭零回复!
morose999 2010-07-08
  • 打赏
  • 举报
回复
额,最后那句SQL更正如下:上面多加了个引号
(payer=2 AND payer_type='agent') or (incepter=2 AND payer_type<>'agent')

22,299

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧