model中聯合唯一unique together

2021-09-29 11:27:49 字數 579 閱讀 2396

在django model中會對一張表的幾個字段進行聯合約束和聯合索引,例如在購物車表中,登入的使用者和商品兩個欄位在一起表示唯一記錄。

建立聯合約束:

unique_together = ("user", "goods")
建立聯合索引:

index_together = ("user", "goods")
聯合約束作用:意思為在這個表中,每一行的user、goods欄位必須唯一,不能重複

聯合索引作用

​假設你的資料有一千萬條 每次條件過濾 省10%的資料

1 如果三個單索引 先拿a的索引找 剩下100萬資料 然後拿b條件找 剩十萬 再c條件找 最後得到一萬資料

2 如果是聯合索引 他 一千萬資料*10% * 10% * 10% 直接得到一萬條資料,可以提高效率

關係型資料庫中聯合主鍵和唯一索引的應用

在專案開發中往往會遇到兩個實體物件之間存在多對多關係的情況,此時我們會維護兩個實體物件表,乙個關係表,用來存放兩者之間的關係。比較典型的案例是學生表 課程表 學生課程關係表。在這種關係表中,我們可以確定的是,學生和課程關係雖然是多對多,但乙個確定的學生id和乙個確定的課程id在關係表中只能存在乙個。...

MySql新增聯合唯一索引

專案需要將某個表的某兩個字段新增唯一索引,保證這兩個欄位的值不能同時重複。alter table 表名 add unique index 索引名 欄位1,欄位2 當表中已經存在重複資料的時候,新增的時候就會報錯,這時候需要將資料去重。1.先查出來重複的資料 select from select 字段...

MySQL 新增唯一約束和聯合唯一約束

在mysql資料庫中,經常會碰到由於業務需要新增唯一鍵約束,唯一鍵約束,可以在乙個列上新增約束,也可以在多個列上新增唯一約束。1.建表時加上唯一性約束 create table t user id int 11 notnull auto increment username varchar 18 n...