gorm 不设置外键可以关联查询吗 ?

gorm 不设置外键可以关联查询吗 ? 在php中是可以的如: laravel中设置hasMamy 时候不用设置外键

pardon110
最佳答案

laravel中你设置hasmany其实是隐性地设置外键了,laravel底层通过惯例推断出关联关系,外键设置等操作。golang目前并不能通过反射动态生成一个未显性定义的结构体类型),通常需要用结构体标签的形式显性定义关联关系。如果不想设置外键进行关联查询,你可以考虑gorm自带的查询表达式语句,类似yii那样构建查询条件对象。本质上,最终向数据库提交的sql还是会用到外键。或者扩展gorm与查询相关钩子函数,做成像laravel类似的操作。

4年前 评论
讨论数量: 3
pardon110

laravel中你设置hasmany其实是隐性地设置外键了,laravel底层通过惯例推断出关联关系,外键设置等操作。golang目前并不能通过反射动态生成一个未显性定义的结构体类型),通常需要用结构体标签的形式显性定义关联关系。如果不想设置外键进行关联查询,你可以考虑gorm自带的查询表达式语句,类似yii那样构建查询条件对象。本质上,最终向数据库提交的sql还是会用到外键。或者扩展gorm与查询相关钩子函数,做成像laravel类似的操作。

4年前 评论

@pardon110 我现在数据库中很多表都是没有设置外键的, 如果需要关联查询,只能用原声sql了吗?

4年前 评论
ALMAS

@linzi 做关联查询不一定在数据库中设置外键,只在结构体中做映射即可。具体的看看gorm文档

4年前 评论

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