10-5中讲到课程外键 course_org,三个报表数据会混乱的问题提
来源:10-5 课程机构经典课程展示- 通过model反向去外键关联数据
啥昵称不占用
2019-07-25
给慕课网机构 添加了一名老师 bobby
在bobby老师名下添加了一门课程 python
在添加python这门课的时候,机构可以选择非慕课网的机构~
这样就造成了数据上的混乱,如果不按规矩添加。就会造成慕课网 的热门课程是清华老师讲的情况。
这样的问题是怎么处理的?可以在添加课程的时候,限定只能选该老师所在的机构么?怎么实现?
写回答
1回答
-
bobby
2019-07-27
从设计上来讲,既选讲师又选择机构有点多余,但是这样设计多余的字段冗余好处就是通过机构反向取课程容易多了,但是在添加课程选择结构和讲师的时候容易出现机构和讲师对应不上,这个应该就是你的疑问了,其实这种问题解决方法比较多:1。设计字段的时候不设计org这个字段, 这样只选择老师就不会有问题,但是通过机构反向取课程性能会比较低因为要多连接一张teacher表,所以org这个字段虽然冗余了但是在使用的时候却会让查询更加方便和快速,所以如果要保留这个字段的话其实也比较简单, 在xadmin进阶开发的章节我会讲解如何去拦截一个数据的save方法,可以在save中自动添加teacher的org了,这样的话在显示新增页面的时候可以忽略这个org这个字段,也就是这个字段在model中设计为可以为null,但是每次修改或者保存的时候拦截save方法,这这个方法中自己默认查询到这个teacher的org并填写到这个字段就解决了,这种解决方法相对优雅一些
132019-07-29
相似问题