gpt4 book ai didi

mysql - 使用 std 为多对多关系建模结构

转载 作者:IT王子 更新时间:2023-10-29 02:02:43 24 4
gpt4 key购买 nike

我正在尝试学习围棋,我想在帖子和标签之间创建多对多关系。一个标签可以属于多个帖子,一个帖子可以有多个标签。我正在使用使用 mysql 驱动器的标准库 (github.com/go-sql-driver/mysql)

这是我的代码:

post.go

package main

type post struct {
ID int `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Tags: Tag `json:"tags"`
}

标签.go

package main

type tag struct {
ID int `json:"id"`
Name string `json:"name"`
Posts: Post `json:"posts"`
}

这是构造这种多对多关系的正确方法吗?

干杯

最佳答案

这里有一些需要考虑的修改:

  1. 保持类型名称一致(例如,postPost)
  2. 我想你想要一片标签和一片帖子,所以我更新了它的语法。
  3. 您需要回答的一个重要问题;您是否需要/希望将您的结构存储在内存中,每个项目都使用单个结构?如果是这样,您可能需要考虑使用指向 Tag 和 Post 的指针片段(例如 []*Post[]*Tag),但是流行的 ORM 库并不严格需要(例如 gorm: http://jinzhu.me/gorm/associations.html#many-to-many )。

示例代码:

type Post struct {
ID int `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Tags []Tag `json:"tags"`
}

type Tag struct {
ID int `json:"id"`
Name string `json:"name"`
Posts []Post `json:"posts"`
}

关于mysql - 使用 std 为多对多关系建模结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537060/

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