Django model 中设置联合约束和联合索引的方法
作者:ding_312 时间:2023-09-24 09:14:15
在Django model中对一张表的几个字段进行联合约束和联合索引,例如在购物车表中,登录的用户和商品两个字段在一起表示唯一记录。
举个栗子:
Django model中购物车表
class Cart(models.Model):
user = models.ForeignKey(
MyUser,
verbose_name="用户"
)
goods = models.ForeignKey(
Goods,
verbose_name="商品"
)
num = models.IntegerField(
verbose_name="商品数量"
)
is_select = models.BooleanField(
default=True,
verbose_name="选中状态"
)
class Meta:
# 联合约束 其中goods和user不能重复
unique_together = ["goods", "user"]
# 联合索引
index_together = ["user", "goods"]
unique_together = ["goods", "user"] 表示联合约束,其中"goods"和"user"表示不能重复,不能一样。
index_together = ["user", "goods"] 表示联合索引,其中"goods"和"user"联合同步查询,提高效率。
联合索引的优势
示例SQL:select * from person where a=100 and b=100 and c=1000;
假设你的数据有一千万条 每次条件过滤 省10%的数据
1 如果三个单索引 先拿a的索引找 剩下100万数据 然后拿b条件找 剩十万 再c条件找 最后得到一万数据
2 如果是联合索引 他 一千万数据*10% * 10% * 10% 直接得到一万条数据
建立联合索引的同时 还会给他们之间的组合建立索引
来源:https://blog.csdn.net/ding_312/article/details/81264910
标签:Django,model,联合,约束,索引
0
投稿
猜你喜欢
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2023-07-14 00:27:57
MySQL 去除重复数据实例详解
2024-01-24 13:21:53
python3获取当前文件的上一级目录实例
2021-06-03 02:22:22
Python中return用法案例详解
2022-09-09 10:35:40
python如何利用Mitmproxy抓包
2022-06-15 13:18:16
Windows下Apache+MySQL+PHP运行环境的安装图文方法
2023-10-14 02:05:31
SQL学习笔记六 union联合结果集使用
2011-09-30 11:34:27
JavaScript初级教程(第五课续)第1/3页
2024-04-17 10:10:07
PHP图片上传代码
2024-05-05 09:17:26
Oracle回滚段的概念,用法和规划及问题的解决
2010-07-26 13:08:00
Python 中 -m 的典型用法、原理解析与发展演变
2023-07-09 17:11:40
asp的分词技术
2007-08-25 17:50:00
Python使用爬虫爬取静态网页图片的方法详解
2021-02-18 20:07:58
了解javascript中let和var及const关键字的区别
2024-05-09 15:06:06
Kettle下载安装pdi-ce-7.1.0.0-12教程
2023-11-27 05:38:36
Python将列表中的元素转化为数字并排序的示例
2023-07-06 11:16:11
微信小程序实现分页查询详解
2024-04-16 10:38:58
pytorch打印网络结构的实例
2023-11-04 15:15:51
Vue不能watch数组和对象变化解决方案
2024-04-30 10:41:06
GO CountMinSketch计数器(布隆过滤器思想的近似计数器)
2024-02-17 06:12:40