表设计随感(一)

问题简介

最近工作中,遇到了一个表设计的问题,如下:

有两种客户,新客户和老客户;打算对他们进行电子化签约操作;
新用户: 需要填写合同信息,企业信息,店铺信息(注意:店铺信息可以是多条,也就是说,一个用户可以注册一个企业,但可以拥有多个店铺)
老用户 : 已经签过合同,并填写过了企业信息,只需要填写店铺信息即可(同上,用户可以拥有多个店铺)

ps : 老用户可能是之前电签的用户,也可能是很久以前,进行走纸资流程的用户,对于之前电签的老用户,电签系统中存储有对应的合同信息和企业信息,但是对于走纸资流程的老用户,没有对应的合同信息和企业信息,并计划后期再讲这些信息导入


表的设计如下

这里写图片描述

问题是对应走纸资流程的老用户,没有对应的合同信息表记录,企业信息表记录,对于后台列表展示数据时,无法进行。

讨论过程:

以店铺表作为主表
进行数据拉取

一个会员拥有多个店铺,将这些店铺作为一个组, 在店铺表中增加一个group_id以标识。并在这组店铺中设置一个店铺为主店铺 master_store;

拉取数据时,依据master_store进行进行连表 企业信息表和合同信息表,进行后台列表页显示;对于店铺信息展示,当点击该条列表记录时候,弹出框中进行展示多个店铺信息记录

进行条件筛选,查询

按照group_id对查询结果进行分组

问题

太过复杂,不利于后期需要变动,并且对于查询和维护店铺表信息比较麻烦

新建一张表,作为主表

新建一张电签流程表,主要主表,主要存储审核进度,角色审核状态,店铺信息表,企业信息表,合同信息表,中都存储电签流程表id,

表结构关系图

这里写图片描述

拉取数据,进行列表页面展示

依据电签流程表作为主表,连表查询店铺信息表,企业信息表,合同信息表,并进行展示

条件筛选,查询

直接连表查询

后记

可能,你觉得,这些有点无聊;

很明显的问题,对1【t_one】对N【t_two】关系,一定不能用t_two表作为主表,并且数据库相关数据库书籍上都有说明,当N对N关系时,要建立一张 体现对应关系的表;
但是,我要说是,当理论知识遇到时间情况的时候,变通什么的都忘了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值