Я пытаюсь изучить mySql DB, у меня есть 2 таблицы, с которыми я работаю, одна для пользователей и одна для кошек, которые публикуют зарегистрированные пользователи.
USERS:
+----+---------+------------------+----------+--------+
| id | name | email | password | cats |
+----+---------+------------------+----------+--------+
| 3 | omar | omar@hotmail.com | omar | [] |
| 14 | dana | dana@gmail.com | anad | [] |
| 7 | mama | mami@gmail.com | mama | [] |
| 9 | tata | tata@gmail.com | tata | [] |
+----+---------+------------------+----------+--------+
CATS:
+----+---------+----------------+---------+
| id | name | age | breed | ownerId |
+----+---------+--------+-------+---------+
| 5 | mimi | 2 | Grey | 14 |
| 10 | Negri | 19 | black | 3 |
+----+---------+----------------+---------+
Я хочу, чтобы каждый раз, когда кошка размещается в базе данных CATS, я хочу, чтобы этот идентификатор catId отображался в базе данных USERS в массиве кошек идентификатора владельца. Например, кошка Мими имеет ID = 5 и ownerID = 14. Если вы посмотрите в таблице пользователей, ID 14 соответствует пользователю Дана. Я хочу, чтобы идентификатор кошек (5) появился в массиве кошек Даны. Это код, который у меня есть: функции, которые отправляют нового кота в базу данных CATS.
function addCat (catsData, connection){
let {name, age, breed, ownerId} = catsData;
const mySqlQuerry = `insert into cats(name, age, breed, ownerId) values ('${name}', '${age}', '${breed}', '${ownerId}')`;
return new Promise ((resolve, reject) => {
connection.query(mySqlQuerry,
function (error, results, fields) {
if(error){
reject(error);
} else {
resolve(results);
}
})
})
};
async function postCatsHandler(req, res, next) {
try {
let data = req.body;
const connection = req.app.get("mySqlConnection");
const addedCatId = await addCat(data, connection);
console.log("addedCatId::", addedCatId);
req.result ='{...data, id : addedCatId}'
next();
}
catch(error){
next(error);
}
};
Any tips or information is greatly valued.
Many thanks.