找回密码
 立即注册

QQ登录

只需一步,快速开始

hadwin
金牌服务用户   /  发表于:2022-3-11 10:54  /   查看:1908  /  回复:3
100金币


oobj和soobj_main是两张用来记录项目信息的表。
oobj_item_pay用来记录付款信息。
为了统计方便,两个项目表共用了oobj_item_pay表,但oobj_item_pay只能作为oobj的子表。
当我做上图中的表格时,就没法显示soobj_main的对应数据。

请问:
1、这种情况应该如何设计表的关联?
2、有没有其他方法能做到显示对应数据?



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

最佳答案

查看完整内容

这样的话,有两种处理方式: 一种的话,是将合同设计成一个合同表,然后通过合同ID和付款表关联。可以在合同表中新增一个字段,用于区分是项目合同还是服务合同,然后设备字段可以关联合同表自己的ID,里面存需要关联的服务合同的ID 优点是:查询效率更高,关联取值更方便, 可能存在的问题是:如果日后两种合同的差异变大,需要新增字段,会造成一些冗余。 另一种就是您之前的这种处理方式,将两种合同分两个表,然 ...

3 个回复

倒序浏览
最佳答案
最佳答案
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-11 10:54:14
来自 4#
hadwin 发表于 2022-3-11 14:20
视图我会用,我只是想了解一下能不能通过数据表设计来实现。

soojb_main的表其实是可以跟oobj的表合并 ...

这样的话,有两种处理方式:

一种的话,是将合同设计成一个合同表,然后通过合同ID和付款表关联。可以在合同表中新增一个字段,用于区分是项目合同还是服务合同,然后设备字段可以关联合同表自己的ID,里面存需要关联的服务合同的ID


优点是:查询效率更高,关联取值更方便,
可能存在的问题是:如果日后两种合同的差异变大,需要新增字段,会造成一些冗余。

另一种就是您之前的这种处理方式,将两种合同分两个表,然后通过视图来处理。
优点是:如果日后需要新增字段,维护起来比较方便;
可能存在的问题是:这样结构的视图查询取值相比起直接关联,效率会低一些,如果日后数据量比较大,性能方面可能会受影响。

您可以根据您实际情况,选择更适合您的方式~


本帖子中包含更多资源

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

x
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-11 11:52:34
2#
本帖最后由 Chelsey.Wang 于 2022-3-11 11:54 编辑

您好,这个情景的话,通过关联设置的确是没法直接取到这些数据的,您需要自己写一个视图来处理数据。
创建视图 - 活字格V7帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)
不过看了一下您的表设计,有这么两个地方不太明白,可能是因为不太了解您的实际场景,感觉可能是可以优化的地方:
1.soobj_main和oobj这两个表的结构看起来非常相似,而且也都有通过rid关联取值的需求,不知道这里为什么设计成两个表,如果可以的话,设计成一个表会更好。

2.图中绿色框中的表格主要是想用来展示什么样的信息呢,有很多rid相同的数据,看起来是同一个项目的多次支付记录;你能不能将您这里的真实的业务场景跟我讲一下,我看看有没有更好的解决方法推荐给您~




本帖子中包含更多资源

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

x
回复 使用道具 举报
hadwin
金牌服务用户   /  发表于:2022-3-11 14:20:20
3#
Chelsey.Wang 发表于 2022-3-11 11:52
您好,这个情景的话,通过关联设置的确是没法直接取到这些数据的,您需要自己写一个视图来处理数据。
创建 ...

视图我会用,我只是想了解一下能不能通过数据表设计来实现。

soojb_main的表其实是可以跟oobj的表合并的,但是由于当时设计时候没想到,所以我给分成两个了。

场景描述:

名词:项目合同(oobj)与服务合同(soobj_main)

1、项目合同和服务合同存在相关性,项目合同中的设备有可能会关联到服务合同上。
2、项目合同(oobj)与服务合同(soobj_main)都需要进行付款,
3、项目合同与服务合同可以独立存在。

如果是上述的情况,可以如何实现比较好呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部