의 내가 이런 Cars
, CarTypes
, 그들의 BuildDates
있다고 가정 해 봅시다 :장고에서 데이터베이스 필드를 변경하지 못하게하려면 어떻게해야합니까?
class Car(db.models):
licence_name = models.CharField(max_length=64)
car_type = models.ForeignKey(Type)
class Type(db.models):
name = models.CharField(max_length=64)
build_during = models.ForeignKey(BuildDate)
class BuildDate(db.models):
begin = models.DateField(null=True)
end = models.DateField(null=True)
class Meta(object):
unique_together = (('begin', 'end'),)
나는 별도의 테이블에 BuildDates
을 갖고 싶어 그런 내가 장고 - 외부 도구를 사용하여 빠른 쿼리 및 기타 물건을 할 수 있습니다. BuildDates
고유하지만 CarTypes
공유하기 때문에
, 나는이 있는지 확인하려면 다음 BuildDate
d0
하나 CarType
t1
의가 변경되면, 다른 CarTypes은 영향을받지 않으며 그들은 여전히 동일한 BuildDate d0
을 공유 -하지만 t1
을 가진 현재는 d1
입니다. 그 CarType
t1
에 대해 BuildDate
d1
을 새로 작성해야한다고 생각합니다. 이를위한 권장 또는 권장 방법이 있습니까?
어떻게 더 빠른 쿼리를 산출하는데 별개의 모델을 가지고있다? 몇 가지 사례를 공유하려면 어떻게해야하나요? –
SELECT cards_car.id FROM cars_car, cars_type, cars_builddate cars_builddate.begin> = x 및 cards_builddate.end <= y 및 cars_car.type == cars_type.id 및 cars_type.build_during = cars_builddates.id – AME
오류 ... 당신은 * * 정말 ** 내부 조인을 추가하면 ** 실제로 ** 쿼리가 빨라질 것입니다. 그렇다면 어떤 SQL 데이터베이스를 사용하고 있는지 알고 싶습니다. 내가 아는 한, 조인을 추가함으로써 그러한 결과를 보지 못했습니다. 사실, 조인을 제거하여 성능을 위해 원 자성을 교환하는 "비정규 화"라는 작은 게임조차도 있습니다 ... –