好奇怪的模型和表结构

这里写图片描述

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

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

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

from model_utils.models import TimeStampedModel

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值