将 id 数组作为文档的一部分时选择哪种关系类型
Which relation type to choose when having array of ids as part of the document
每个订单都有 productIds 属性,它是一个 productIds 数组,如下所述。
我应该如何实现 StrongLoop \ Loopbck 3 中的关系?
我在 document 中找不到我应该选择的正确关系类型。
我正在使用 MongoDB.
Orders
{
"_id": "5bc9eed3336746028d88651f",
"name": "My Order",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z",
"currency": "EUR",
"productIds": ["5f16de532b3fa13644bdf513", "5f170559afcb6d3644ee4f1e"]
}
Products
{
"_id": "5f16de532b3fa13644bdf513",
"name": "Product One",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z"
}
{
"_id": "5f170559afcb6d3644ee4f1e",
"name": "Product Two",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z"
}
这真的取决于你是否需要从产品到相应订单的参考。
案例一:
如果您需要它并且产品可以与许多订单相关,那么正确的关系是 ManyToMany。对于 lb3 和这种类型的关系,您可以使用 hasAndBelongsToMany relation.
案例二:
如果您需要,并且每个产品都可以与一个订单相关,那么请使用 hasMany 关系。
案例三:
如果您不需要它,那么最好的选择是 referencesMany,因为它允许在不影响产品实例的情况下将订单连接到相应的产品。
根据您的描述,我猜案例 3 与您要构建的内容相匹配,所以我会选择 referencesMany.
示例定义:
{
"name": "Order",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": "string"
},
"relations": {
"products": {
"type": "referencesMany",
"model": "Product",
"foreignKey": "productIds"
}
...
}
每个订单都有 productIds 属性,它是一个 productIds 数组,如下所述。 我应该如何实现 StrongLoop \ Loopbck 3 中的关系?
我在 document 中找不到我应该选择的正确关系类型。 我正在使用 MongoDB.
Orders
{
"_id": "5bc9eed3336746028d88651f",
"name": "My Order",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z",
"currency": "EUR",
"productIds": ["5f16de532b3fa13644bdf513", "5f170559afcb6d3644ee4f1e"]
}
Products
{
"_id": "5f16de532b3fa13644bdf513",
"name": "Product One",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z"
}
{
"_id": "5f170559afcb6d3644ee4f1e",
"name": "Product Two",
"createdAt": "2018-10-19T14:48:50.961Z",
"updatedAt": "2018-11-21T09:57:34.729Z"
}
这真的取决于你是否需要从产品到相应订单的参考。
案例一: 如果您需要它并且产品可以与许多订单相关,那么正确的关系是 ManyToMany。对于 lb3 和这种类型的关系,您可以使用 hasAndBelongsToMany relation.
案例二: 如果您需要,并且每个产品都可以与一个订单相关,那么请使用 hasMany 关系。
案例三: 如果您不需要它,那么最好的选择是 referencesMany,因为它允许在不影响产品实例的情况下将订单连接到相应的产品。
根据您的描述,我猜案例 3 与您要构建的内容相匹配,所以我会选择 referencesMany.
示例定义:
{
"name": "Order",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": "string"
},
"relations": {
"products": {
"type": "referencesMany",
"model": "Product",
"foreignKey": "productIds"
}
...
}