[英]How to structure these requirements? (microservices)
I have a customer microservice (customer document) and a bank account microservice (bank account document).我有一个客户微服务(客户文件)和一个银行账户微服务(银行账户文件)。 How do I structure these requirements?我如何构建这些需求?
There are two types of clients: personal and business.有两种类型的客户:个人和企业。
A personal client can only have a maximum of one savings account, one checking account or fixed term accounts.个人客户最多只能拥有一个储蓄户口、一个支票户口或定期户口。
A business client may not have one savings or fixed-term account but may have multiple checking accounts.商业客户可能没有一个储蓄或定期账户,但可能有多个支票账户。
In the customers document I have an ID attribute that identifies the bank account and that could fulfill the first requirement, however, the second one indicates that you can have multiple checking accounts if it is a business type.在客户文档中,我有一个标识银行帐户的 ID 属性,并且可以满足第一个要求,但是,第二个表明如果它是一种业务类型,您可以拥有多个支票帐户。
db 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
}
]
}
aggregate总计的
db.clients.aggregate([
{
"$lookup": {
"from": "accounts",
"localField": "_id",
"foreignField": "client_id",
"as": "account_docs"
}
}
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.