关于 定义GORM关联关系 时出现的 循环导包 问题

下面是定义了关联关系的两个模型

这是package appUser

关于 定义GORM关联关系 时出现的 循环导包 问题

这是package joke

关于 定义GORM关联关系 时出现的 循环导包 问题

项目运行的时候会启动AutoMigrate自动创建迁移表,但是报出错误import cycle not allowed

关于 定义GORM关联关系 时出现的 循环导包 问题

文档上推荐的是在同一个文件下定义两个模型就没有问题,但是在项目里通常都会把模型分开的吧,这种情况下要怎么处理呢,有没有最佳实践:flushed:

讨论数量: 4

模型分开是分成多个文件吧,包名还是在一个文件夹下

2年前 评论
_Ten (楼主) 2年前
_Ten (楼主) 2年前
巴啦啦

包的循环引用,没有函数默认值,这两个问题,让我难受的像有一群蚂蚁不停的在你身上爬来爬去,浑身难受

2年前 评论
_Ten (楼主) 2年前

大家都是模型,分个包有什么优点吗?

2年前 评论
_Ten (楼主) 2年前

循环导包的本质是包的层级没有搞好,你这个appUser 和 joke 其实是同级别的关系。只有互相关联,而不是谁属于谁。其实我非常推荐一个数据库表只对应一个文件,只对应一个 struct ,不要依赖其他的 struct。 这样利于代码的可读性。 真正操作数据的时候,其他的地方去依赖这个文件(这个包)。比如可以 user 一个文件(或一个包),joke 一个文件(或一个包)。 那么你的appUser 和 jokeUser 去依赖上面两个文件,这样结构就很清楚了。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!