@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 ?
  • Вопрос задан
  • 1126 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
А зачем вам в данном случае вообще Mongo? Опции вполне нормально можно джойнить при условии, что индексы проставлены верно. После первого раза запрос закэшируется и будет работать довольно быстро. Это при условии, что вы пишете запрос с использованием биндов.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы