请稍等 ...
×

采纳答案成功!

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

恳请老师给我解答下 我对于这种一个类属性是另一个类一直搞不明白 谢谢您

图片描述

老师 测试店铺新增时候 我们new了Area对象 最后用了area.setAreaId(2) 这个我不懂 为啥要事先数据库中要存在areaid为2的一条记录 如果数据库中没有不行么 area.setAreaId(2)是去数据库中查询为2的一条记录 然后放在area对象里么

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

1回答

翔仔 2019-02-24 01:22:08

同学好,首先如果在数据库里不存在areaid为2的记录的话,即tb_area没有相关记录,那么由于tb_shop里有area_id这个外键(根据业务要求,店铺需要和地址绑定,即哪个地方的店铺),同学往tb_shop添加店铺记录的时候会把该记录的area_id置为2,但是由于2并未出现在tb_area,会导致违反外键约束而报错。所以需要先在添加area_id为2的地址才能添加该区域的店铺。

类里面放类只是为了让逻辑结构更清晰些,和数据库查找没有必然联系:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉0009206028 #1
    老师 既然area_id是tb_shop的外键,我们shop.set(area_id)时候随便设置个值比如3.45不可以么 为什么一定要是表里存在的2呢
    回复 有任何疑惑可以回复我~ 2019-02-24 01:50:10
  • 翔仔 回复 提问者 慕粉0009206028 #2
    都可以呀。。ut就只是用来造数据验证,就好比用户创建店铺的时候可以选择不同的地方,也就是说你可以提前在数据库往tb_area录入areaid为3或者4的地址,供tb_area选择
    回复 有任何疑惑可以回复我~ 2019-02-24 09:32:26
  • 提问者 慕粉0009206028 #3
    谢谢老师您的耐心解答
    回复 有任何疑惑可以回复我~ 2019-02-24 12:13:03
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号