gpt4 book ai didi

postgresql - 努力与gorm手动创建关系/迁移

转载 作者:行者123 更新时间:2023-12-01 22:15:57 30 4
gpt4 key购买 nike

我有一个像这样的sql结构:

CREATE TABLE resources (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL,
updated_at TIMESTAMPTZ NOT NULL,
deleted_at TIMESTAMPTZ
);

CREATE TABLE tags (
name TEXT PRIMARY KEY
);

我需要写什么SQL,如何告诉 gorm我希望 Resource有很多 Tag?这是我目前的明智做法:

package models

import (
"github.com/jinzhu/gorm"
)

type Tag struct {
Name string `gorm:"PRIMARY_KEY"`
}

type Resource struct {
gorm.Model
Title string
Tags []Tag `gorm:""`
}

请注意,我明确表示 不是希望通过gorm自动迁移。我正在使用 migrate工具来处理迁移,并希望专门手动处理它们,而不是使用go。

最佳答案

要定义一个有很多关系,必须存在一个外键。

因此,对于您的情况,标记应为:

type Tag struct {
gorm.Model
Name string `gorm:"PRIMARY_KEY"`
ResourceID int
}

和资源:
type Resource struct {
gorm.Model
Title string
Tags []Tag `gorm:"foreignkey:ResourceID"`
}

并且您的sql结构应该具有该外键ResourceID列。

不知道您是否已经检查过此内容,但是如果需要,它包含更多详细信息: https://gorm.io/docs/has_many.html#Foreign-Key

关于postgresql - 努力与gorm手动创建关系/迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60234345/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com