Django model 中設定聯合約束和聯合索引

2021-08-21 20:41:01 字數 1011 閱讀 5808

在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% 直接得到一萬條資料

​ 建立聯合索引的同時 還會給他們之間的組合建立索引

物聯卡接入號 物聯卡apn設定大全

一 物聯網卡不能正常使用,首先你的裝置是否屬於以下幾種問題。1 終端裝置 手機 能支援聯通 電信 移動的4g 3g網路,是否設定了未啟動4g?2 網絡卡是否充值,是否已經正常續費上 是否更換過裝置?必知 物聯卡是先充值,再插卡使用的,所有卡片都不允許更換卡槽,不允許更換裝置,所以在使用時,一定要注意...

C 中的動態聯編和靜態聯編

通常來說聯編就是將模組或者函式合併在一起生成可執行 的處理過程,同時對每個模組或者函式呼叫分配記憶體位址,並且對外部訪問也分配正確的記憶體位址,它是電腦程式彼此關聯的過程。按照聯編所進行的階段不同,可分為兩種不同的聯編方法 靜態聯編和動態聯編。靜態聯編是指在編譯階段就將函式實現和函式呼叫關聯起來,因...

如何在linux centos下設定橋接聯網方式

二 設定虛擬機器系統 以centos為例 將網路介面卡設定為橋接 三 配置ip 都是在命令介面中,圖形介面同理 device eth0 bootproto static broadcast 10.2.20.255 子網廣播位址 hwaddr 00 0c 29 66 76 7c ipaddr 10.2...