Лучший шаблон проектирования для обновления или вставки массовых данных - PullRequest
1 голос
/ 05 августа 2020

Интересно, какой шаблон проектирования является лучшим для обновления или вставки массовых данных в БД.

Мое приложение использует шаблон MVVM, в котором модель выполняет операции «CUD», а есть шаблон QueryObject для сложных R "запросы.

Так, например, у меня есть такой код:

const book = new BookModel(data);
const id = await book.save();

и другие вроде этого:

const bks = await new BooksQuery().orderByAuthor().whereGenre('engineering').execute();
const books = books.map((book) => new BooksViewModel(req, book));
this.render(req, res, 'books', books);

Предположим, что мне нужно сохранить порядок сортировки для многих книг. Спрашивается, где по логике go?

  1. Это некрасиво, я думаю, что модель неправильно используется:
const book = new BookModel();
const result = await book.saveSort(orderedIds);

или

const book = new BookModel(orderedIds);
const result = await book.saveSort();
Более красиво, но мне нужно снова разделить управление объектами (возможно, его можно объединить с объектом запроса под названием BooksQuery ...):
const result = await new BooksCommand().saveSort(orderedIds).execute();
Другие варианты, которых я не знаю.

Спасибо!

...