beego orm中的表结构一对多多一一关系的问题

发布于 2022-09-11 21:25:27 字数 1166 浏览 26 评论 0

"reverse(many)"// 设置一对多的反向关系是指就是 多对一的关系吗?orm:"rel(m2m)"` //设置一对多关系 m2m不是many to many意思吗?关于beego orm表结构一对多多对一的关系看懵了,有go大神指点一二嘛,万分感激!
原文地址:https://github.com/astaxie/bu...

type Userinfo struct {

Uid     int `PK` //如果表的主键不是id,那么需要加上pk注释,显式的说这个字段是主键
Username    string
Departname  string
Created     time.Time

}

type User struct {

Uid          int `PK` //如果表的主键不是id,那么需要加上pk注释,显式的说这个字段是主键
Name        string
Profile     *Profile   `orm:"rel(one)"` // OneToOne relation
Post        []*Post `orm:"reverse(many)"` // 设置一对多的反向关系

}

type Profile struct {

Id          int
Age         int16
User        *User   `orm:"reverse(one)"` // 设置一对一反向关系(可选)

}

type Post struct {

Id    int
Title string
User  *User  `orm:"rel(fk)"`
Tags  []*Tag `orm:"rel(m2m)"`    //设置一对多关系

}

type Tag struct {

Id    int
Name  string
Posts []*Post `orm:"reverse(many)"`

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下慵懒的猫 2022-09-18 21:25:27

首先,这个文档里的案例是来自beego官方文档的,但是,有一个地方复制错了...以下是源文档:

package main

import (
    "github.com/astaxie/beego/orm"
)

type User struct {
    Id          int
    Name        string
    Profile     *Profile   `orm:"rel(one)"` // OneToOne relation
    Post        []*Post `orm:"reverse(many)"` // 设置一对多的反向关系
}

type Profile struct {
    Id          int
    Age         int16
    User        *User   `orm:"reverse(one)"` // 设置一对一反向关系(可选)
}

type Post struct {
    Id    int
    Title string
    User  *User  `orm:"rel(fk)"`    //设置一对多关系
    Tags  []*Tag `orm:"rel(m2m)"`
}

type Tag struct {
    Id    int
    Name  string
    Posts []*Post `orm:"reverse(many)"`
}

func init() {
    // 需要在init中注册定义的model
    orm.RegisterModel(new(User), new(Post), new(Profile), new(Tag))
}

可以看到 设置一对多关系的不是m2m,而是fk,是写错了,m2m的确是多对多关系

例子里的正向关系的设置是在Post里的第三个字段初设置的orm:"rel(fk)",即post表有一个字段user关联着user表主键;

tags同理。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文