关于 定义GORM关联关系 时出现的 循环导包 问题
下面是定义了关联关系的两个模型
这是package appUser
这是package joke
项目运行的时候会启动AutoMigrate
自动创建迁移表,但是报出错误import cycle not allowed
文档上推荐的是在同一个文件下定义两个模型就没有问题,但是在项目里通常都会把模型分开的吧,这种情况下要怎么处理呢,有没有最佳实践
模型分开是分成多个文件吧,包名还是在一个文件夹下
包的循环引用,没有函数默认值,这两个问题,让我难受的像有一群蚂蚁不停的在你身上爬来爬去,浑身难受
大家都是模型,分个包有什么优点吗?
循环导包的本质是包的层级没有搞好,你这个appUser 和 joke 其实是同级别的关系。只有互相关联,而不是谁属于谁。其实我非常推荐一个数据库表只对应一个文件,只对应一个 struct ,不要依赖其他的 struct。 这样利于代码的可读性。 真正操作数据的时候,其他的地方去依赖这个文件(这个包)。比如可以 user 一个文件(或一个包),joke 一个文件(或一个包)。 那么你的appUser 和 jokeUser 去依赖上面两个文件,这样结构就很清楚了。