Есть ли способ хранить объекты в базе данных mySQL? - PullRequest
0 голосов
/ 14 января 2020

У меня есть база данных, использующая MySQL, называемую «пользователи». В нем две таблицы. «первый» и «второй».

Я беру информацию о пользователях из формы, используя JavaScript в качестве массива объектов.

например, let usersInformation = [{"name":"james", "age":"30"}]

Как я могу легко хранить каждый массив объектов?

В прошлом я создавал столбцы, например, "имя", а затем сохранял значение " имя "в этом столбце.

Есть ли способ хранить объекты в базе данных MySQL. Я посмотрел термин ORM и подумал, что это может помочь.

Ответы [ 2 ]

1 голос
/ 14 января 2020

Перед отправкой объекта в запрос преобразуйте его в json. Если вам нужно, вы можете заполнить поле таблицы как MEDIUM TEXT

let usersInformation = [{"name":"james", "age":"30"}];
usersInformation = JSON.stringify(usersInformation);

. Затем отправьте это на ваш запрос.

0 голосов
/ 14 января 2020

Вы можете использовать JSON тип данных MySQL.

mysql> create database user; 

mysql> use user
# Create a table with a json data type
mysql> create table user (json JSON); 

# Insert an array into the field
mysql> insert into user(json) values ('["first", "second", "third", "4th"]'); 

# Insert an object
mysql> insert into user(json) values('{"name": "Levi", "last": "Jr"}');

mysql> select * from user;
+-------------------------------------+
| json                                |
+-------------------------------------+
| ["first", "second", "third", "4th"] |
| {"last": "Jr", "name": "Levi"}      |
+-------------------------------------+
2 rows in set (0.00 sec)


. Вы можете использовать JSON_EXTRACT, чтобы получить некоторую информацию из поля и отфильтровать ее в предложении WHERE.

Вот как это использовать: JSON_EXTRACT([field], [expression])), [выражение] - это то, как вы собираетесь извлекать информацию из поля.

Пример.

mysql> select * from user where JSON_EXTRACT(user.json, '$.name') = 'Levi';
+--------------------------------+
| json                           |
+--------------------------------+
| {"last": "Jr", "name": "Levi"} |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select * from user where JSON_EXTRACT(user.json, '$[0]') = 'first';
+-------------------------------------+
| json                                |
+-------------------------------------+
| ["first", "second", "third", "4th"] |
+-------------------------------------+
1 row in set (0.00 sec)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...