node.js - 哪个是好习惯?在数据库中公开主键或使用其他唯一键查找用户?
问题描述
这是我的场景。我正在为 React 原生移动应用程序创建一个带有 node、express 和 sequelize 的后端。假设我们有两张表——一张是用户,另一张是钱包(两者都在 1to1 关联中)。
这是我的问题,当我需要查找与 Wallet 表的关联时,我需要从用户表发送一个 userId(作为其外键),检查此代码
const {userID} = req.params;
return db.B.findOne({
where: { userId },
include: {
model: db.User,
attributes: ['name', 'email'],
},
})
那么有什么好的做法呢?通过参数发送 userId,然后直接传递给 findOne 查询,或者发送一些独特的用户详细信息,如“电子邮件”。
这样,我可以找到带有电子邮件的用户,然后使用该 ID 进行第二次查询?
哪个是好习惯?
因为第二个需要两个查询来查找用户并使用该 userId 来查找相关的钱包?
解决方案
这实际上是一个基于意见的问题,因为在某些情况下您可能想要使用电子邮件,但是:
只需使用唯一、永久、不变的标识符(用户 ID)而不是电子邮件。
推荐阅读
- java - 如何自定义zuul异常
- wordpress - 使用 robots.txt 或 htaccess 查询字符串块
- visual-studio-code - 行尾不遵循 VS Code 中的默认设置
- javascript - 如何将有效负载数据格式化为仅包含与特定部分对应的数据?
- sql - 在 Apache Derby 中按条件执行 DDL
- php - 在 PHP 中使用数据透视查询到 SQL Server 得到错误 TCP Provider: The semaphore timeout period has expired
- python - 无法在没有主键的情况下强制更新 save()。在django?
- wpf - 组合框 ItemsSource 的 ReactiveUI 绑定错误
- php - 搜索结果未反映在输出 CSV 中
- c - 找不到我的循环没有终止的原因