关联不同数据库中的两个实体以及两个应用程序之间的通信

法哈尔·艾哈迈德·拉苏尔

简短的故事:如何关联不同数据库中的两个实体?在微服务中,每个服务都有自己的数据库,在微服务体系结构中,不同数据库中的实体如何相互关联?

长话短说:我正在编写两个单独但相关的应用程序,比方说一个用于二手车销售商的管理系统以及一个帐户和财务系统。我希望我的应用程序能够彼此独立地工作。

现在,假设车辆交易在管理系统中完成,然后根据最终交易数据,我将在财务系统中生成发票。同样,如果要删除交易,则我也必须删除相应的发票,但要删除相应的发票,我想以某种方式将交易与发票相关联,但是我不能简单地在实体之间建立关系,因为我想要我的应用程序完全独立,这也意味着不同的数据库。还是有办法在不同数据库中的两个表之间建立关系?关联两个不同数据库的表甚至是一个好主意吗?

此外,我想要双向通信,例如,如果交易被编辑,那么其相关发票也将被编辑;如果发票被编辑,则其相关交易也将被编辑,就像微服务一样,我希望两个系统都能够独立运行,彼此并存。

可能的解决方案:我现在能想到的唯一解决方案是拥有一个数据库和两个独立的应用程序层,但是这种设计本身并不好,因为我以前使用过这种方法,但它也有很多缺点。

技术堆栈:我的技术堆栈是.Net和MSSQL

我正在寻找曾经设计过这种系统或曾经遇到过类似问题的人的答案。

奥斯温·诺特泽曼

使用uuid标识您的实体,并将其作为简单的String引用。

请参阅如何在C#中生成UUID

例如:

{
  "Name" : "MyDeal",
  "Id" : "6a0e5244-2a85-4944-9be4-04c8cfbf3e45"
}

{
  "Name" : "MyInvoice",
  "Id" : "efed8b94-0065-4004-adcc-9f2d219fb6eb",
  "DealReference" : "6a0e5244-2a85-4944-9be4-04c8cfbf3e45"
}

不要使用通用持久性,例如通用数据库。参见https://stackoverflow.com/a/43618284/7803650

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单个应用程序中两个不同Firebase应用程序的通知和数据库

数据库或消息队列,用于两个应用程序之间的数据交换

两个不同数据库中两个表之间的多对多关系

原则:两个数据库中两个实体之间的关系

在两个不同服务器的两个MySQL数据库之间建立通信

同一端口上的两个Docker容器(数据库和简单Java应用程序)之间的通信

同一台计算机中两个不同的WPF应用程序之间的通信

比较SQL Server中两个不同数据库中两个存储过程之间的代码

如何关联位于不同数据库(SQL Server)中的两个表?

迁移和两个应用程序共享不同计算机上的部分数据库

在两个不同的mysql数据库中的两个表之间复制大量行

如何在一个 Angular 应用程序中访问两个 Mongo 数据库?

如何在两个不同的角度应用程序之间传递数据

如何使两个Web应用程序的数据库保持同步?

应用程序的两个实例连接到相同的,已更改的数据库

Oracle数据库作为两个单独的Web应用程序的单个同步点

如何从两个Openshift应用程序访问MongoDB数据库?

具有相同数据库的两个Rails应用程序?

用于两个应用程序的liferay单个数据库

在CloudFoundry的同一数据库上运行两个应用程序

共享同一数据库Rails的两个应用程序

Docker 组合两个应用程序初始化数据库

如何在Android应用程序的单个数据库中创建两个表?

如何在两个不同的数据库之间的MySQL中设置外键?

在两个不同数据库中的表之间联接?

Android中两个不同应用程序之间的共享元素转换?

在RUNTIME时从Spring Boot应用程序中的两个相同数据库连接到一个数据库

两个不同的JFrame之间的通信?

在两个数据库的两个不同表中插入相同的Guid键