这个编码对DB很重要。有没有办法通过将它们组合在一起来减少数据库命中数?如果不是在Django中是否可以使用SQL?我的开发机器是SQLite,生产是PostgreSQL。如果可能的话,请给我一些关于从哪里开始的提示。
class Sensor(models.Model):
Name = models.CharField( max_length=200 )
Value = models.FloatField()
class DataPoint(BaseModel):
Taken_datetime = models.DateTimeField( blank=True, null=True )
Sensors = models.ManyToManyField( SensorVal, blank=True, null=True )
for row in rows:
dp = DataPoint.objects.get(Taken_datetime=row['date'])
sensorToAdd = []
for sensor in sensors:
s = Sensor.objects.get(Name=sensor.name, Value=sensor.value )
sensorToAdd.append( s )
dp.Sensors.add( sensorToAdd )
所有数据都存储在cvs文件中,所以我在开始时就知道所有数据。
对于每一行,代码命中数据库以加载DataPoint,加载传感器,并将传感器连接到DataPoint。我正在寻找像bulk_create这样的东西,但是对于m2m字段。我发现的所有解决方案都使用了我上面使用的相同方法。我遇到的问题是DataPoints有很多时间,而且我很多时候都在使用DB。我想将所有这些组合在一起并进行一些数据库调用。
如果有更好的方法来建模数据而不使DB更大?我会对此持开放态度。