Подход к базе данных

0

Я использую asp.net core как back-end и mySQL как базу данных. Я добрался до точки, где я получаю массивы из front-end для вставки в мою базу данных. Мой вопрос: должен ли я перебирать массив и отправлять несколько запросов в базу данных, или это более "дешево" для отправки данных в виде строк и декомпозиции данных в базе данных?

пример:

let array = [{id: 1, name: "a"},{id:2, name:"b"}];

Опция 1:

//for each data in array -> send insert query

вариант 2:

//create two string
let ids = "1,2";
let names = "a,b";

//send 1 request to database, 
//use stored procedure with methods like 'SUBSTRING_INDEX' and 'INSTR' to decompose the data from strings.

Полезное объяснение было бы полезно.

  • 1
    Всегда лучше избегать многократных поездок на сервер базы данных. Таким образом, вы также можете сохранить несколько записей, отправив данные в виде XML в базу данных
  • 0
    @kritikaTalwar Я думаю, в моем случае, отправка данных в формате XML является лучшим подходом. на рабочем месте строго придерживаются процедур вместо подготовки динамических запросов. поэтому создание глобальной функции для создания xmls из массивов и процедуры, которая будет обрабатывать их, является для меня разумным подходом.
Теги:

2 ответа

0

Рассмотрите возможность использования документации Entity для Microsoft

  • 0
    Хотел бы я, но на этом рабочее место очень приковано ... да, я знаю ....
0

Динамический SQL может быть полезен здесь. Создайте динамический запрос в коде, чтобы вставить всю строку в один проход в базу данных. Вы можете сделать это, как указано ниже

INSERT INTO tab(id,name)
VALUES (1,'a'),
       (2,'b');
  • 0
    может быть, я не объяснил себе, как должен, но это второй вариант. Я использую хранимые процедуры и передаю им строки, а затем использую запрос, как вы сказали.
  • 0
    не совсем. Вам не нужно ничего разлагать здесь. В этом случае две отдельные строки будут вставлены в таблицу. первая строка будет иметь столбец идентификатора со значением 1 и столбец имени со значением «а» и т. д. Никакой дальнейшей обработки здесь не требуется.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню