找回密码
 立即注册

QQ登录

只需一步,快速开始

隔壁老王 活字格认证
金牌服务用户   /  发表于:2021-7-23 22:19  /   查看:5263  /  回复:20
100金币
本帖最后由 隔壁老王 于 2021-7-23 22:39 编辑

情况是这样的
有三个表 主表  子表   孙表
子表是主表的子表   孙表是子表的子表
就是爷爷儿子和孙子的关系了
我需要在同一个页面同时新增这三张表的数据
因为孙表是对子表的描述

问题
在主表没有数据的情况下,也就是新添数据的时候
我希望用户在点击添加后再向数据库添加这个页面的内容(也就是三张表的数据)
我尝试过打开页面就像数据库添加主表信息   如果点击 取消 按扭就删除主表  以做到同时删除子表的作用,
但是如果用户并不点取消按扭直接关闭页面呢?那样就会出现很垃圾信息
不知大佬们能否看懂,我附上一个文件   

这个功能的用处是做表单的时候,
比如采购单   
采购的 子表  成品A   单价是100元   
他是  孙表   由三个配件    配件A  50元    配件B   20元    配件C 30元    组成的

配件信息需要在添加的时候同时操作了,并不是保存后再操作,
也不希望把配件信息加入到成品信息里,也就是一定要三层表关系




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

20 个回复

正序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-7-28 14:00:31
21#
lwt 发表于 2021-7-28 13:10
子表和孙表是多对多确是要在页面先建立关系。

回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-28 13:10:10
20#
子表和孙表是多对多确是要在页面先建立关系。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2021-7-28 10:18:08
19#
lwt 发表于 2021-7-28 08:18
用服务端命添加到数据库可以实现,添加时会产生主表id,把主表id写到子表,把子表id写入到孙表同时也要把 ...

楼主的问题在于主表和子表是一对多的,子表和孙表是多对多的,
而多对多的关系如果不在页面指定,服务端是没办法判断哪个对应哪个的
这种场景要么直接在页面上指定关联,要么先一对多的添加,
其他可能会引起数据错乱,
后面有问题,欢迎继续发帖交流
回复 使用道具 举报
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-28 08:18:16
18#
本帖最后由 lwt 于 2021-7-28 08:19 编辑
Chelsey.Wang 发表于 2021-7-27 18:29
好的,您可以先按照您的思路试试哈~

子表自动编号它确实是在创建记录时生成的,

用服务端命添加到数据库可以实现,添加时会产生主表id,把主表id写到子表,把子表id写入到孙表同时也要把主表id写到孙表.
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-27 18:29:15
17#
隔壁老王 发表于 2021-7-27 14:30
首先感谢您的回复
以上解决的思路我都有想过,
最终我可能会选择我做的紧绑定,

好的,您可以先按照您的思路试试哈~

子表自动编号它确实是在创建记录时生成的,
但是它必须得保存在数据库中,孙表才能存进去,
因为孙表中有字段关联了它,子表中这里是空的的话,孙表获取不到对应关系是没法存的。

这种多对多的场景,基于上述原因,恕在下愚钝,实在是没想到合适的处理方法
如果您有想法,您可以在项目需求版块发帖,叙述一下实现逻辑大概是怎样的呢,如果你能提供合适的思路,也许我们可以按照您的思路实现哦~
回复 使用道具 举报
隔壁老王活字格认证
金牌服务用户   /  发表于:2021-7-27 14:30:05
15#
Chelsey.Wang 发表于 2021-7-27 14:04
这个页面中主子表是一对多的关系,而子表和孙表是多对多的关系,多对多的关系中,如果松绑订,子表数据都没 ...

首先感谢您的回复
以上解决的思路我都有想过,
最终我可能会选择我做的紧绑定,
这样可能更适合场景需求
1和2的方案不适合使用场景

问题的重点我觉得还是多对多的问题,
另外子表的自动编号如果能在新增行记录的时候就出现或许能解决

虽然没有达到我希望的效果,
但我相信日后一定会有多对多这个功能的
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-27 14:04:44
14#
本帖最后由 Chelsey.Wang 于 2021-7-27 14:08 编辑

这个页面中主子表是一对多的关系,而子表和孙表是多对多的关系,多对多的关系中,如果松绑订,子表数据都没存到数据库中,孙表中的数据怎么知道自己要和谁关联,所以这里本身在设计思路上就是矛盾的,不能这样实现。

如果想要没有冗余数据,表格就要使用松绑订;
如果想要孙表响应子表中的对应关联关系,就必须要先存主子表再存孙表。

松绑订的设计是合理的,应当保留,这样可以保证数据的完整性和正确性。
至于提交,这里我想到的改进思路大概有这几个方向:
1.更改表设计,就是楼上大佬说的用两表实现,分类字段如果是不能提前准备的,可以在填报时让用户自己填。
2.分两步存和录入,先主子,后孙,也是一种常见的设计方式。
3.更改表格关系,子表和孙表不直接设置关联和主子表关系,手动来维护关联关系。
新建时,设置表格初始化不加载数据;
填报时,需要用户手动输入子表编号这一列并确定和子表中是对应的;
提交时,直接提交这个表格的数据,由于没有设置关联,是可以提交的;
修改和查看时,通过表格查询来筛选出对应的孙表数据。

1和2我认为是处理这类数据时比较合理和常见的思路,3可以实现您想要的这个效果,但是对最终用户操作的准确性有要求。建议您可以再整理和考虑一下需求,选择适合您的解决方案哦~


回复 使用道具 举报
隔壁老王活字格认证
金牌服务用户   /  发表于:2021-7-26 20:49:25
13#
本帖最后由 隔壁老王 于 2021-7-26 21:36 编辑
绿之雪 发表于 2021-7-26 20:23
你的表设计有问题

你就两表就能实现

我现在的这个文件可以实现我想要的效果

但是这个表格是紧绑定的,数据多的时候会比较慢

再一个如果用户点击添加后并没有点按扭关闭页面而是直接关闭浏览器就会多一条没有用的数据,虽然也可以定期清理,

但我还是希望更能有更好的解决方案

我考虑现在的问题主要是出在,孙表的关联字段在子表中不能及时生成,

因为自动编号只能在表格保存时才会出现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
隔壁老王活字格认证
金牌服务用户   /  发表于:2021-7-26 20:37:17
12#
绿之雪 发表于 2021-7-26 20:23
你的表设计有问题

你就两表就能实现

我就是想要同时登记孙表
回复 使用道具 举报
隔壁老王活字格认证
金牌服务用户   /  发表于:2021-7-26 20:34:27
11#
绿之雪 发表于 2021-7-26 20:23
你的表设计有问题

你就两表就能实现

我这是举例,实际是没有提前知道孙表内容的,不能提前准备
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部