首页 > 解决方案 > 有没有办法在一对多的表关系中“合并”一个子表?

问题描述

有没有办法在一对多的表关系中“合并”一个子表?我的架构由三个具有嵌套一对多关系的表组成:

Reports --< Domains --< Findings

我必须通过读取数千(~30,000)个 excel 文件来填充这些表。只有当我查看Findings表格时,我才看到其中有许多相同的重复字符串(我后来发现这些多页 Excel 报告是通过编程方式生成的)。

有没有一种有效的方法可以检查Findings表中的字符串是否已经存在?...并且仅在它不存在时才添加它?

下面是我的代码片段,我在其中添加 ORM 实例仅供参考/上下文:

    _report = Report(**report)
    for r in range(_reportdf.shape[0]):
        _domain = Domain(**domains[r])
        _report.domains.append(_domain)
        for f in findings[r]:
            _finding = Finding(finding= f[0], value= f[1])
            _domain.variables.append(_finding)
            session.add(_finding)

        session.add(_report)                
        session.add(_domain)
    session.commit()

标签: python-3.xsqlitesqlalchemy

解决方案


推荐阅读