亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django model中如何設置聯合約束和聯合索引

發布時間:2021-06-22 13:01:45 來源:億速云 閱讀:450 作者:小新 欄目:開發技術

小編給大家分享一下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中如何設置聯合約束和聯合索引”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙居县| 集贤县| 张家川| 榆林市| 乌什县| 陆丰市| 平泉县| 班玛县| 庆元县| 武威市| 通化市| 英山县| 体育| 土默特右旗| 巴中市| 桐柏县| 大理市| 元江| 广灵县| 辉县市| 瑞丽市| 迭部县| 台山市| 滨海县| 康马县| 平乡县| 施甸县| 长宁县| 华宁县| 江口县| 会泽县| 鸡东县| 天镇县| 新乐市| 廉江市| 保靖县| 同仁县| 灯塔市| 涟源市| 石渠县| 和平区|