请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

嵌套关联查询下的主键和外键是怎么区分的

我不明白在嵌套关联查询下的belongsTO("image","img_id",“id”)这句话的img_id作为外键,而不是belongsTO("image",“id“,"img_id"),而且按照语义化,image表在这里充当的是关联表的主键关系吗?这里的id应该是指的是image下的id呀,(elongsTo(‘关联模型名’,‘外键名’,‘关联表主键名’,[‘模型别名定义’],‘join类型’);
)      学生迷茫,请老师指点

正在回答 回答被采纳积分+3

1回答

湖南津彩 2017-07-10 14:04:56
主表:banner_item,对应模型:BannerItemModel
外表:image        对应模型:ImageModel
主表上才有外键,外键定义:在主表里面存储的外面表里面的id键,叫外键
1.首先belongsTo()方法只能出现在主表的模型(Model)中,如项目中的BannerItemModel,对应banner_item(主表)
当在主表模型(BannerItemModel)中要表示与外表模型(ImageModel)一对一的关系时使用belongTo(),反过来要在外表模
型(ImageModel)中表示与主键一对一关系时需要使用hasOne()
2.BannerItemModel->belongTo()方法既然只能在主表(BannerItemModel)中使用,那么自然而然的第一个参数就是要关联的外表名称,第二个参数
是外键id(img_id),第3个参数就是外表(image)id了
3.从上可以看出是依照主->次的顺序来填写各个参数的,这样理解就对了。正如调用也是从BannerItemModel->belongTo()主->次的顺序
1 回复 有任何疑惑可以回复我~
  • banner 是外表,  bannerItem 是主表, 所以主表bannerItem的banner_id就是外键, banner 的id 就是外表id 这样理解吗? 如果是这样 items 方法是不是应该写在BannerItemModel 里面合适一点,实际上课程写在了BannerModel 里面, 求解?
    回复 有任何疑惑可以回复我~ 2019-07-16 18:43:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信