首页 > 解决方案 > 哪个是好习惯?在数据库中公开主键或使用其他唯一键查找用户?

问题描述

这是我的场景。我正在为 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 来查找相关的钱包?

标签: node.jsexpresssequelize.jssequelize-cli

解决方案


这实际上是一个基于意见的问题,因为在某些情况下您可能想要使用电子邮件,但是:

只需使用唯一、永久、不变的标识符(用户 ID)而不是电子邮件。


推荐阅读