@VKhotey

Какие данные хранить в mongodb, в какие в mysql?

Здравсвуйте! Я делаю магазин, у него есть категории и продукты их я храню в mysql со связями many to many.

К продуктам можно добавлять не ограниченое количесто опций и вариатов к опциям, к примеру:
Опция: Размер; Варианты: m, l, s;
Опция: Цвет; Варианты: сниний, зеленый;

Храню опции в mongodb, чтобы не создаваь еще 3-4 таблицы и потом не делать большие джоины чтобы собрать опции, варианты и продукты в mysql, в mongo опции выглядят так:
import mongoose, { Schema } from 'mongoose'

const ProductOptionSchema = new Schema({
  productId: {
    type: Number,
    required: true,
  },
  name: {
    type: String,
    required: true,
  },
  options: {
    type: [
      {
        name: {
          type: String,
          required: true,
        },
        value: {
          type: String,
          required: true,
        },
      },
    ],
    required: true,
  },
})

export default mongoose.model('productOption', ProductOptionSchema)

Вопросы:

1) Чтобы собрать данные я сначала получаю продукты из mysql, потом по id проуктам получаю опции и маплю их к продуктам, является ли это решени правильным или лучше перенести данные в mysql ?

2) Так же чтобы не создавать много таблиц думал сделать подобную логику для заказов, тк в mongo структура данных документ всю информацию можно занести в него не создавая много таблиц и связей как в mysql ?

3) Какие данные, информацию вы храните в mongo ?
  • Вопрос задан
  • 828 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
А зачем вам в данном случае вообще Mongo? Опции вполне нормально можно джойнить при условии, что индексы проставлены верно. После первого раза запрос закэшируется и будет работать довольно быстро. Это при условии, что вы пишете запрос с использованием биндов.
Ответ написан
OnYourLips
@OnYourLips
Хороший пример использования монго - логи из разных источников. Это данные без строгой структуры.

А вот данные из бизнес-логики идеально ложатся на SQL СУБД, потому что сущности связаны между собой. Включая ваши свойства товаров, разделенных по трем таблицам (сами товары, именования свойств, значения свойств для товаров). Возможна еще таблица для связей допустимых свойств с категориями товаров. Но это упрощенная модель, в более сложной придется разделять наименование товара от артикула.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы