209 похожих чатов

Тут надо смотреть на данные, они же сейчас как-то между

собой связываются?

15 ответов

29 просмотров

Сейчас я делаю транзакцию await this.prismaService.$transaction( dto.map(({ text, language, translate }) => { return this.prismaService.word.create({ data: { text, language, users: { connect: { id: userId } }, author: { connect: { id: userId } }, themes: { connect: { id: themeId } }, fileName: createMp3FileName(text), translate: { create: { ...translate, fileName: createMp3FileName(translate.text), }, }, }, }); }), );

Алексей-Шашенков Автор вопроса
Vitalii
Сейчас я делаю транзакцию await this.prismaServi...

translate.text он откуда? Как изначально данные связанны?

Vitalii
Сейчас я делаю транзакцию await this.prismaServi...

Сейчас у меня проблема в том что массив из сотки таких записей добавляется в базу около 20 секунд

Алексей Шашенков
text - не уникальный?

Может перед записью в бд добавить в каждую пару какой то connect_uid и потом с помощью cte законектить их сопоставляя эти поля?

Алексей-Шашенков Автор вопроса
Vitalii
Уникальный только ID

Я конечно хз почему нет уникальности, кроме id Но это мешает сделать нормальный запрос. Тк можно потерять связь. Проще сделать через for с create по 1 строке. Если их будет до 100 шт. await prisma.$transaction(async (tx) => { for(row of rows) { await tx.word.create(....) } })

Алексей-Шашенков Автор вопроса
Vitalii
Может перед записью в бд добавить в каждую пару ка...

тоже можно. Странно, что в переводах тоже нет уникальности.

Алексей Шашенков
тоже можно. Странно, что в переводах тоже нет уник...

Текст в словах и переводах был уникальный, но потом это мне всё усложнило и я это убрал

Алексей Шашенков
Я конечно хз почему нет уникальности, кроме id Но...

Записей может быть до 2к, это около 2 минут занимает уже

Алексей-Шашенков Автор вопроса
Vitalii
Текст в словах и переводах был уникальный, но пото...

Так перевод должен быть как словарь. И тогда все будет ок. Ты сначала массивом сохраняешь переводы, потом их id крепишь к word или через промежуточную таблицу если есть много вариаций переводов. С другой стороны, почему fileName не уникальный

Алексей Шашенков
Так перевод должен быть как словарь. И тогда все б...

Там потом возникают трудности когда пользователь начинает редактировать слова или переводы, надо создавать новые, конектить и разконекчивать, проще сделать на каждый раз новую запись и потом делать с ней что угодно, а файлы уникальные

Алексей-Шашенков Автор вопроса
Vitalii
Там потом возникают трудности когда пользователь н...

Так, тогда зачем это выносить отдельно? Если связь 1-1 и без пересечений

Алексей Шашенков
Так, тогда зачем это выносить отдельно? Если связ...

Транслейт и текст могут тогда быть полями одной таблицы, и связей не надо, точно

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

Обсуждают сегодня

Карта сайта