【问题标题】:Which is good practice ? Exposing primary key in db or finding the user with some other unique key?哪个是好习惯?在数据库中公开主键或使用其他唯一键查找用户?
【发布时间】:2020-10-27 18:18:49
【问题描述】:

这是我的场景。我正在为 React 原生移动应用程序创建一个带有 node、express 和 sequelize 的后端。假设我们有两张表 - 一张是 User,另一张是 Wallet(两者都是 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.js express sequelize.js sequelize-cli


    【解决方案1】:

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

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

    【讨论】:

    • 你的意思是,我应该直接使用/传递用户ID,而不是通过电子邮件查找用户并使用已建立的用户userId?
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多