【问题标题】:Join my app database with database from software使用来自软件的数据库加入我的应用程序数据库
【发布时间】:2020-04-04 23:35:52
【问题描述】:

我已经有很长一段时间了,我正在制作一个链接到我们正在使用的软件的应用程序,这将允许用户使用我的软件访问数据使用我在软件上的应用程序更新数据

这就是整个想法:

所以我的应用程序将在外键(“App Patient”上的patientId)的帮助下链接到软件的数据库(Software Patient)。

而且我需要能够直接从我的应用程序中搜索emailpasswordfirstNamelastNamesecretStuff,并能够更新两个数据库上的数据。

这里最大的问题是我无法制作第三张表将所有数据合并到一个表中,因为来自软件数据库(Software Patient)的数据将被其他人直接从软件中更新很多。

当前堆栈由:

  • 我的应用程序:带有 Sequelize、GraphQL 和 PostgreSQL 的 Node.js
  • 我们使用的软件:SQL Server Express

提前谢谢你!

【问题讨论】:

    标签: sql node.js architecture software-design


    【解决方案1】:

    您正在开发的应用程序必须从您的商业软件患者(我们称之为 SP)系统中获取数据。这提出了几个问题。你真的真的需要清楚地回答这些问题,才能完成应用中的数据流设计。部分问题:

    • 您的应用程序将如何从 SP 获取数据?您会向 SP 的数据库发出 SQL 查询吗? SP 是否为此目的发布应用程序接口 (API)?或者您将在应用程序的工作流程中使用的数据导出功能?
    • 您的应用程序的 SP 数据视图必须是最新的吗?每小时更新一次就够了吗?每天?
    • 您的应用会更改 SP 数据、插入新数据或删除 SP 系统中的数据吗?如果是这样,请参阅第一个问题。
    • 您是否必须对 SP 进行逆向工程,即猜测其数据的结构,才能使您的应用正常运行?或者您能否从 SP 的开发人员那里获得规格/文档?
    • 如果您更新逆向工程数据库,伙计,请小心!

    如果您的应用程序将使用 SQL 从 SP 获取数据,它将将该 SQL 发送到 SP 的 SQL Server Express 数据库。 nodejs 有这方面的工具,但是 postgreSQL 中使用的工具和 SQL 方言是不同的。也许在整个过程中使用 SQL Server 是明智的:这样做可以减少将来维护和增强您的应用程序的人们的认知负担。他们和您都不必直截了当地了解这两个 DBMS 之间的差异。

    如果您要使用 API,那就太好了!这是两个系统之间的干净接口。 (它可能会有一些令人恼火和令人困惑的错误,所以请允许一些时间。我不得不向几个 API 维护者发送拉取请求。)

    如果您弄清楚了这些问题的答案,您将对第三张桌子的问题做出正确的决定。如果没有其中一些问题,就不可能解决您特定的第三表问题。

    而且。请。不要忘记信息安全。您有责任让您所服务的患者的个人数据远离网络入侵者。

    【讨论】:

    • 您好,感谢您的回答! * 我需要发出每一个 SQL 查询(不提供 API)我只能访问纯 SQL Server 数据库。 * 每小时更新一次可以,但它需要是双向的(SP 更新的数据可访问,并且从我的应用程序到 SP 的更新数据)* 是的。 * 我已经要求提供规格/文档,但在公司多次尝试后没有答复。
    • 明白了。我的建议是从您的技术堆栈中删除 postgresql,并将 SQL Server 用于您的 SQL。您将能够直接在他们的数据库中查找数据。您将能够编写同时使用他们的表和您的表的单个查询。最重要的是,数据将全部集中在一个地方。
    • 谢谢你,我想我最好的选择是按照你说的迁移,我现在唯一能看到的问题是我正在使用的 ORM(Sequelize 不支持跨数据库连接) ,我想我需要自己编写查询
    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多