MySql发布2个表
我正在尝试学习mySql数据库,我有两个表,一个用于用户,另一个用于注册用户发布的CATMySql发布2个表,mysql,database,post,Mysql,Database,Post,我正在尝试学习mySql数据库,我有两个表,一个用于用户,另一个用于注册用户发布的CAT USERS: +----+---------+------------------+----------+--------+ | id | name | email | password | cats | +----+---------+------------------+----------+--------+ | 3 | omar | omar@hotmail.
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数据库中发布cat,我都希望该catId出现在owner'sId CATS数组的USERS数据库中。
例如,猫咪咪的ID=5,所有者ID=14。如果查看users表,ID14对应于用户Dana。我希望猫Id(5)出现在Dana的猫数组中。
这就是我现在拥有的代码:在CATS数据库中发布新cat的函数
function addCat (catsData, connection){
let {name, age, breed, ownerId} = catsData;
const mySqlQuery = `insert into cats(name, age, breed, ownerId) values ('${name}', '${age}', '${breed}', '${ownerId}')`;
return new Promise ((resolve, reject) => {
connection.query(mySqlQuery,
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.
不应在数组中存储值。。您应该规范化您的数据库并使用适当的表来维护cats和用户之间的关系MYSQL中没有
数组
数据类型(除非您引用的是JSON?。@GMB是的,我指的是…?您不应该将cats数组存储在用户
表中。任何时候当您需要此数组时,您都可以查询它:SELECT USERS.*,GROUP_CONCAT(CATS.id)作为用户左侧的cat加入CATS.ownerId=USERS.id按用户分组。id
您不应该在数组中存储值。。您应该规范化您的数据库并使用适当的表来维护cats和用户之间的关系MYSQL中没有数组
数据类型(除非您引用的是JSON?。@GMB是的,我指的是…?您不应该将cats数组存储在用户
表中。任何时候当您需要此数组时,您都可以查询它:SELECT USERS.*,GROUP_CONCAT(CATS.id)作为用户左侧的猫加入CATS.ownerId=USERS.id按用户分组。id