0
比方说,我有Cars
,CarTypes
,他们BuildDates
这样的:如何让数据库字段在Django中不可更改?
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
在一个单独的表这样我可以做的更快的查询和其他的东西与Django的外部工具。
由于BuildDates
是独一无二的,但CarTypes
之间共享,我要确保这一点:一个CarType
t1
的BuildDate
d0
如果改变了,其他CarTypes不会受到影响,他们仍然共享相同的创建日期d0
- 但与t1
现在有d1
。我认为有必要为该CarType
t1
创建一个新的BuildDate
d1
。有没有建议或推荐的方法来做到这一点?
如何具有应该产生更快的查询的独特模式?小心分享几个用例? – 2014-09-01 13:45:17
SELECT cards_car.id FROM cars_car,cars_type,cars_builddate WHERE cars_builddate.begin> = x和cards_builddate.end <= y AND cars_car.type == cars_type.id AND cars_type.build_during = cars_builddates.id – AME 2014-09-01 14:52:52
Err ... Are you * *真的**确定添加一个内部连接会**真的**使您的查询更快?如果是,我想知道你正在使用哪个SQL数据库。就我而言,我从来没有见过添加连接的结果,恰恰相反 - 事实上,甚至有一个名为“非规范化”的小游戏,您通过摆脱连接来交换原子性能以实现性能。 – 2014-09-01 15:00:21