繁体   English   中英

如何构建这些需求? (微服务)

[英]How to structure these requirements? (microservices)

我有一个客户微服务(客户文件)和一个银行账户微服务(银行账户文件)。 我如何构建这些需求?

有两种类型的客户:个人和企业。

  • 个人客户最多只能拥有一个储蓄户口、一个支票户口或定期户口。

  • 商业客户可能没有一个储蓄或定期账户,但可能有多个支票账户。

在客户文档中,我有一个标识银行帐户的 ID 属性,并且可以满足第一个要求,但是,第二个表明如果它是一种业务类型,您可以拥有多个支票帐户。

D b

db={
  "clients": [
    {
      "_id": 1,
      "type": "personal",
      "name": "Tom",
      "createAt": ISODate("2022-01-10T11:23:25.184Z")
    },
    {
      "_id": 2,
      "type": "business",
      "name": "Apple",
      "createAt": ISODate("2022-01-12T05:10:42.220Z")
    }
  ],
  "accounts": [
    {
      "_id": 1,
      "client_id": 1,
      "type": "saving",
      "money": 12000
    },
    {
      "_id": 2,
      "client_id": 1,
      "type": "checking",
      "money": 8000
    },
    {
      "_id": 3,
      "client_id": 2,
      "type": "checking",
      "money": 6000
    },
    {
      "_id": 4,
      "client_id": 2,
      "type": "checking",
      "money": 7000
    }
  ]
}

总计的

db.clients.aggregate([
  {
    "$lookup": {
      "from": "accounts",
      "localField": "_id",
      "foreignField": "client_id",
      "as": "account_docs"
    }
  }
])

mongoplayground

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM