Django model 中设置联合约束和联合索引的方法

 更新时间:2019年08月06日 18:15:11   作者:ding_312  
今天小编就为大家分享一篇Django model 中设置联合约束和联合索引的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在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% 直接得到一万条数据

建立联合索引的同时 还会给他们之间的组合建立索引

以上这篇Django model 中设置联合约束和联合索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python读写/追加excel文件Demo分享

    Python读写/追加excel文件Demo分享

    今天小编就为大家分享一篇Python读写/追加excel文件Demo,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 学会用Python实现滑雪小游戏,再也不用去北海道啦

    学会用Python实现滑雪小游戏,再也不用去北海道啦

    Python除了极少的事情不能做之外,其他基本上可以说全能.,图形处理、文本处理、数据库编程、网络编程、web编程、黑客编程、爬虫编写、机器学习、人工智能等.接下来我就教大家做一个不用去北海道也可以滑雪的小游戏,需要的朋友可以参考下
    2021-05-05
  • Python实现TXT数据转三维矩阵

    Python实现TXT数据转三维矩阵

    在数据处理和分析中,将文本文件中的数据转换为三维矩阵是一个常见的任务,本文将详细介绍如何使用Python实现这一任务,感兴趣的小伙伴可以了解下
    2024-01-01
  • python代码的几种常见加密方式分享

    python代码的几种常见加密方式分享

    这篇文章主要介绍了python代码的几种常见加密方式分享,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • python利用os模块编写文件复制功能——copy()函数用法

    python利用os模块编写文件复制功能——copy()函数用法

    这篇文章主要介绍了python利用os模块编写文件复制功能——copy()函数用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • pytorch 实现情感分类问题小结

    pytorch 实现情感分类问题小结

    本文主要介绍了pytorch 实现情感分类问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 深入理解Python分布式爬虫原理

    深入理解Python分布式爬虫原理

    本篇文章主要介绍了深入理解Python分布式爬虫原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Python图像处理之图像的缩放、旋转与翻转实现方法示例

    Python图像处理之图像的缩放、旋转与翻转实现方法示例

    这篇文章主要介绍了Python图像处理之图像的缩放、旋转与翻转实现方法,结合实例形式分析了Python使用resize()、rotate()及transpose()等函数进行图像的缩放、旋转及翻转相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解

    Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解

    这篇文章主要介绍了Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法,结合实例形式详细分析了Python GUI编程中tkinter控件的原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-03-03
  • 浅析Django中关于session的使用

    浅析Django中关于session的使用

    这篇文章主要介绍了Django下关于session的使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12

最新评论