好奇怪的模型和表结构

来源:互联网 发布:ecshop的app源码 编辑:程序博客网 时间:2024/05/23 22:11

这里写图片描述

还有一个Extra 模型,就不截图了。

这里写图片描述
有没有发现什么不对的地方呢?
是的,表结构。

解析:
django中有关于时间的类:

from model_utils.models import TimeStampedModel

我们在创建一些model的时候,可以继承这个类,这样很方便,可以看到在数据库中对应表的结构是一张表里包含了TimeStampedModel里的创建时间字段和修改时间字段,是同一张表中的奥。

而上图,Extra 类是我手动创建的模型,在继承这个类的时候,数据库里对应的表中却是一个外键(extra_ptr_id)。

从数据库的角度考虑的话,这样有利于节省表的宽度。但这确实不是我想要的结果,因为在新增ExtraSKU的对象时,都会对Extra表新增,这样就扰乱了,在查询Extra的数据时,区分SKU的数据增加麻烦,哪里比的上直查一个表去获取一个模型对象的所有数据来的方便呢,毕竟,程序员不想办法偷懒怎么行。

所以,就不要继承这个类了,将缺少的字段都拿到SKU里吧,这样才符合逻辑。

0 0
原创粉丝点击