美文网首页
Django 中设置联合约束和联合索引

Django 中设置联合约束和联合索引

作者: kevin_lln | 来源:发表于2019-10-26 19:19 被阅读0次
在Django 中对一张表的几个字段进行联合约束和联合索引,例如电商项目购物车的时候,登录的用户和商品两个字段在一起表示唯一记录。

联合约束参见unique-together官方文档。

举个联合约束和联合索引例子:

class ShoppingCart(models.Model):
    """
    购物车
    """
    user = models.ForeignKey(User, verbose_name=u"用户", on_delete=models.CASCADE)
    goods = models.ForeignKey(Goods, verbose_name=u"商品", on_delete=models.CASCADE)
    nums = models.IntegerField(default=0, verbose_name="购买数量")

    add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")

    class Meta:
        verbose_name = '购物车'
        verbose_name_plural = verbose_name
        # 数据库的联合约束,用户和商品唯一,不可重复
        unique_together = ("user", "goods")
        # 联合索引
        index_together = ["user", "goods"]

最终底层转化为sql语句,如下:

CREATE UNIQUE INDEX index_name ON trade_shoppingcart(user, goods);

相关文章

  • Django 中设置联合约束和联合索引

    联合约束参见unique-together官方文档。 举个联合约束和联合索引例子: 最终底层转化为sql语句,如下:

  • Django设置联合主键

    在django项目中,我们要设置联合主键时,需要写一个类,如: 这样,联合主键就设置完了。

  • 联合索引、合并索引实例

    联合索引比合并索引效率高。 创建用户并且给用户设置权限和密码。(设置指定的ip或任意%)grant select权...

  • 索引:联合索引和单个索引的区别

    联合索引和单个索引的区别 联合索引和单个索引的区别: 最佳左前缀:  如果我们创建了(area, age,sala...

  • Mysql

    2020-01-21 联合索引本质 当创建(a,b,c)联合索引时,相当于创建了(a)单列索引,(a,b)联合索引...

  • MySQL-联合索引

    一、什么是联合索引 两个或更多个列上的索引被称作联合索引,联合索引又叫复合索引。对于复合索引:Mysql从左到右的...

  • mysql联合索引与单列索引

    一、联合索引 数据表如上图,数据表中700百万数据,索引:使用了 SITEID与COLLECTTIME的联合索引 ...

  • 索引的技术点

    联合索引:多字段组合索引,加速组合条件查询 联合索引要满足从左到右的查询需求,例如(a,b,c)的联合索引,能够加...

  • 2019-01-10 Mysql 记录

    1.根据查询建立合适的索引(单字段索引和联合索引),不要只设置PRIMARY索引,查询其他字段时会进行全表扫描 2...

  • MySQL - 索引优化技巧

    联合索引 在建立索引的时候,尽量在多个单列索引上判断下是否可以使用联合索引,联合索引使用不仅可以节省空间,还可以更...

网友评论

      本文标题:Django 中设置联合约束和联合索引

      本文链接:https://www.haomeiwen.com/subject/mdjuvctx.html