【问题标题】:how to make one to many relation with foreign key如何与外键建立一对多关系
【发布时间】:2022-01-20 19:24:17
【问题描述】:
model Categories{
  id Int @default(autoincrement()) @id
  name String @db.VarChar(30)
  products Products[]
}

model Products{
  id Int @default(autoincrement()) @id
  englishName String @db.VarChar(40) @map("english_name")
  category Categories @relation(fields: [categoryId], references: [id])
  categoryId String  
  imgUrl String @map("img_url")
}

嗨!我将模型类别和模型产品作为一对多关系连接起来。我想将模型 Products 中的 categoryId 设置为外键,但它不起作用。有人请帮助我!谢谢!

【问题讨论】:

    标签: prisma


    【解决方案1】:

    我稍微修改了你的架构:

    model Categories{
      id Int @default(autoincrement()) @id
      name String
      products Products[] @relation()
    }
    
    model Products{
      id Int @default(autoincrement()) @id
      englishName String
      category    Categories @relation(fields: [categoryId], references: [id])
      categoryId  Int
    }
    

    在我运行迁移后,最后我执行了以下操作:

    const { PrismaClient } = require('@prisma/client');
    const prisma = new PrismaClient();
    
    const saveData = async () => {
      const category = await prisma.categories
      .create({
        data: {
          name: 'Category 1',
        }
      });
    
      console.log(category);
    
      const product = await prisma.products
      .create({
        data: {
          englishName: 'Product 1',
          category: {
            connect: {
              id: category.id
            },
          }
        }
      });
    
      console.log(product);
    
      const products = await prisma.products
      .findMany({
        include: {
          category: true
        }
      });
    
      console.log(products);
    };
    
    
    saveData();
    

    结果出来了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多