C# 微服务中的多对多关系

C# 微服务中的多对多关系,c#,microservices,C#,Microservices,我有两个微型服务。我们将它们称为IdentityDB和DB2 第一个数据库“IdentityDB”有一个identityASPNetUser 第二个数据库“DB2”有一个表competency 问题在于,ASPNetUser有很多能力,能力有很多ASPNetUser 我不知道如何在微服务体系结构中正确处理这个问题 我试图在“DB2”中创建profile表,该表具有外键表单“IdentityDB”ASPNetUser,并将profile与能力链接,但我认为这不是一个好主意 如何解决? 要为每个服务

我有两个微型服务。我们将它们称为IdentityDBDB2

第一个数据库“IdentityDB”有一个identity
ASPNetUser

第二个数据库“DB2”有一个表
competency

问题在于,
ASPNetUser
有很多能力,
能力
有很多ASPNetUser

我不知道如何在微服务体系结构中正确处理这个问题

我试图在“DB2”中创建
profile
表,该表具有
外键
表单“IdentityDBASPNetUser,并将
profile
能力
链接,但我认为这不是一个好主意

如何解决?
要为每个服务创建一个单独的数据库,它的最佳做法是什么?

您的微服务应该以业务功能为中心,而不是以实体关系为中心。我们必须了解更多的背景。你可能误解了微服务理论。您不需要按微服务设计数据库。数据库将继续是企业级设计。根据标准实践进行本地化/规范化。您可以将业务数据请求类型拆分为微服务,如果确实有理由为该服务创建单独的数据库,您可以编写一个Feeder/Loader,在一天的开始/结束时只批量加载必要的数据。微服务绝对应该有自己的数据库。当然有些人会不同意,但共享数据库通常被认为是一种反模式。@JasonWadsworth但如何在上述示例中链接表简短的回答是,您没有@培训是正确的,微服务应该以业务功能或上下文边界为中心,而不是实体关系。服务之间将存在关系,但这些关系是松散耦合的,而不是数据库外键的紧密耦合。