salesforce中user和account,有何区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了salesforce中user和account,有何区别相关的知识,希望对你有一定的参考价值。

参考技术A user是用户;
account是账户或账号
参考技术B 区别是:
user指的是是用户,使用者。
account指的是账户或账号。

例句辨析:
user
1、Beach users have complained about people walking their dogs on the sand.
海滩上的游客投诉有人在沙滩上遛狗。
2、This is an entirely computer operated system which is very user friendly.

这个系统完全由电脑操控,非常好用。
3、If a computer user fails to log off, the system is accessible to all.

如果计算机用户没有成功退出,那么谁都可以进入该系统。
4、You have to be able to describe things in a form that the end user can understand.

你必须以终端用户可以理解的方式描述产品。

account
1、Some banks make it difficult to open an account.
一些银行把开户弄得很麻烦。
2、Biggart Donald, the Glasgow-based marketing agency, has won two Edinburghaccounts.

比加特·唐纳德,这家驻格拉斯哥的营销代理公司已赢得了两个爱丁堡的客户。
3、He kept detailed accounts.

他记明细账。
4、He gave a detailed account of what happened on the fateful night.

他详细描述了那个灾难性夜晚所发生的事。

约束上的唯一约束失败:棱镜中的`User_Account_userId_key`

【中文标题】约束上的唯一约束失败:棱镜中的`User_Account_userId_key`【英文标题】:Unique constraint failed on the constraint: `User_Account_userId_key` in prisma 【发布时间】:2021-12-21 11:51:56 【问题描述】:

您好,我有三个型号

model User 
  user_id      Int      @id @default(autoincrement())
  email   String   @unique
  name    String?
  User_Account User_Account[]


model Account 
  account_id Int @id @default (autoincrement()) @unique
  email String 
  bank String
  createdAt DateTime @default(now())
  User_Account User_Account[]


model User_Account 
  id Int @id @default(autoincrement())
  accountId Int 
  userId Int 
  User User @relation(fields: [userId], references: [user_id])
  Account Account @relation(fields: [accountId], references: [account_id])

我正在尝试像这样播种我的数据库

const data = [
    
      id: 1,
      email: 'pranit1@mf.com',
      name: 'Pranit1',
      bank: 'VCB',
      ids: [1,1]
    ,
    
      id: 2,
      email: 'pranit1@mf.com',
      name: 'Pranit1',
      bank: 'ACB',
      ids: [1,2]
    ,
    
      id: 3,
      email: 'pranit3@mf.com',
      name: 'Pranit3',
      bank: 'VCB',
      ids: [2,3]
    
  ]
  const users = await prisma.$transaction(
    data.map(user =>
      prisma.user.upsert(
        where:  email: user.email ,
        update: ,
        create:  name: user.name,
        email:user.email ,
      )
    )
  );
  
  const accounts = await prisma.$transaction(
    data.map(account => 
      prisma.account.upsert(
        where:  account_id: account.id ,
        update: ,
        create:  bank: account.bank ,
          email :account.email ,
      )
    )
  );

  const user_accounts = await prisma.$transaction(
    data.map(uacc =>
      console.log(uacc);
      return prisma.user_Account.upsert(
        where:  id: uacc.id ,
        update: id: uacc.id,
        create:
          userId: uacc.ids[0],
        accountId: uacc.ids[1] ,
      )
    )
  );

但是我得到了一个

唯一约束在约束上失败:User_Account_userId_key

prisma studio中的数据生成如图

我只是尝试创建用户和帐户,并且一个用户可以与多个帐户相关联。它们的关系显示在 User_Account 表中。当我在 userId 上没有 @unique 标记时,我不明白为什么会出现唯一约束错误

【问题讨论】:

您使用的是什么类型的数据库?试图重现,但使用 Postgres 对我来说效果很好 【参考方案1】:

我无法重现我这边的错误。 但我怀疑你已经在数据库中有记录,它们与你的播种机的 ID 冲突。 此外,您可以对架构进行一些改进以使其更简单。

    由于您没有关于多对多关系的任何额外详细信息,您可以摆脱 User_Account 模型并让 Prisma 为您处理。 在播种机上,您可以利用 Prisma 的嵌套功能,这样您就不必手动链接记录。这样,您就不必担心 ID。

schema.prisma 建议

model User 
  id       Int       @id @default(autoincrement())
  email    String    @unique
  name     String?
  accounts Account[]


model Account 
  id        Int      @id @unique @default(autoincrement())
  email     String
  bank      String
  users     User[]
  createdAt DateTime @default(now())


seed.js 建议

const  PrismaClient  = require("@prisma/client");
const prisma = new PrismaClient();

async function main() 
    const usersData = [
        
            email: "pranit1@mf.com",
            name: "Pranit1",
            banks: ["VCB", "ACB"],
        ,
        
            email: "pranit3@mf.com",
            name: "Pranit3",
            banks: ["VCB"],
        ,
    ];

    const users = await prisma.$transaction(
        usersData.map((user) =>
            prisma.user.upsert(
                where:  email: user.email ,
                update: ,
                create: 
                    name: user.name,
                    email: user.email,
                    accounts: 
                        create: user.banks.map((bank) => (
                            email: user.email,
                            bank,
                        )),
                    ,
                ,
            )
        )
    );


main()
    .catch((e) => 
        console.error(e);
        process.exit(1);
    )
    .finally(async () => 
        await prisma.$disconnect();
    );

【讨论】:

感谢您的解决方案。我使用的是 Mysql,但我看不出不同的数据库如何为看似基本的模型提供不同的结果。 不客气!我同意你的观点,只是让我对特定用例中可能存在的错误保持开放态度

以上是关于salesforce中user和account,有何区别的主要内容,如果未能解决你的问题,请参考以下文章

Salesforce 小知识:大量“子记录”的处理方法

salesforce account hierarchy

salesforce和salescloud的区别

Salesforce REST 接口集成服务

salesforce零基础学习(九十八)Type浅谈

AWS Appflow <-> Salesforce 集成