У меня 2 модели: Supplier
и Supplier type
. Клиент должен иметь возможность извлечь все Suppliers
, принадлежащие определенному Supplier Type
:
Supplier
:
name: {
type: String,
required: true,
minlength: 2,
maxlength: 255,
},
...
supplier_type: { type: ObjectId, ref: 'SupplierType' },
}
SupplierType
:
name: {
type: String,
required: true,
minlength: 2,
maxlength: 50,
},
suppliers: [{ type: ObjectId, ref: 'Supplier' }],
};
Проект 1:
- Поле в
Supplier
содержит ссылку на назначенный объект Supplier Type
. - Массив в объекте
Supplier Type
содержит ссылки на объекты для всех Suppliers
с типом поставщика. - Клиент запрашивает соответствующий документ
Supplier Type
, скажем Vegetables
, и содержащийся в ответе, среди других полей, будет список Suppliers
.
При таком подходе каждый раз при сохранении нового поставщика требуется как минимум еще одна операция с БД для обновления массива Suppliers
объекта Supplier Type
.
Дизайн 2:
- Удалите массив ссылок
Suppliers
из Supplier Type
объекта - Поле в
Supplier
содержит ссылку на назначенный объект Supplier Type
, как в проекте 1 . - В этот раз Клиент запрашивает документ
Supplier
с параметром, определяющим Supplier Type
, т.е. GET /suppliers?supplier-type=Vegetables
* 10 50 *
Какой дизайн наиболее целесообразен / будет рекомендован в MongoDB?