还有一个Extra 模型,就不截图了。
有没有发现什么不对的地方呢?
是的,表结构。
解析:
django中有关于时间的类:
from model_utils.models import TimeStampedModel
我们在创建一些model的时候,可以继承这个类,这样很方便,可以看到在数据库中对应表的结构是一张表里包含了TimeStampedModel里的创建时间字段和修改时间字段,是同一张表中的奥。
而上图,Extra 类是我手动创建的模型,在继承这个类的时候,数据库里对应的表中却是一个外键(extra_ptr_id)。
从数据库的角度考虑的话,这样有利于节省表的宽度。但这确实不是我想要的结果,因为在新增Extra和SKU的对象时,都会对Extra表新增,这样就扰乱了,在查询Extra的数据时,区分SKU的数据增加麻烦,哪里比的上直查一个表去获取一个模型对象的所有数据来的方便呢,毕竟,程序员不想办法偷懒怎么行。
所以,就不要继承这个类了,将缺少的字段都拿到SKU里吧,这样才符合逻辑。
6572

被折叠的 条评论
为什么被折叠?



