目前,我有3个型号,A,B和C
C有B的外键 B有A的外键
class C(models.Model):
name = models.CharField(max_length=50, db_index=True, unique=True)
b = models.ForeignKey(B)
class B:
...similar to C
class A
...similar to C except for the FK
但是,manage.py sqlindexes app生成的SQL不会为C.name,B.name和A.name创建索引。有人知道为什么会这样吗?
答案 0 :(得分:1)
在我看来,因为这些字段也有unique = True
,所以我不会太担心它。如果你有unique = True
,那么你将获得一个唯一索引(可能会或可能不会被实现为数据库索引),所以我猜Django只是忽略了db_index = True
位。
对于我的一个类似指定的模型,我的行为非常相似。运行manage.py sql app
时会得到什么输出?您是否看到使用name
创建的UNIQUE
字段?