Я хочу хранить временные ряды в базе данных. Значения этих временных рядов обычно определяются для определенного периода, например:
- население страны в 2014, 2015, 2016 годах и т. Д.
- количество домов в стране в 2014, 2015, 2016
Я хочу объединить данные этих varabiales, чтобы иметь возможность сделать некоторую статистику, поэтому жилье против населения. Это возможно только в том случае, если я проверю, чтобы периоды времени были точно такими же. Периоды, как правило, в год / квартал / месяц. Как лучше сохранить эти значения, чтобы я потом мог их сравнить?
В настоящее время я использую start_date (datetime) и end_date (datetime), который, очевидно, работает, но нуждается в хорошем графическом интерфейсе, чтобы предотвратить вход одного человека, например:
start = 1-1-2016 & end = 31-12=2016
в то время как другой введет:
start = 1-1-2016 & end = 1-1=2017
Я думаю, что было бы хорошей идеей сохранить свободу определения периода с пользователем, но помочь ему в определении правильной вещи. Как бы вы предложили это сделать?
Кстати: я работаю с Django, поэтому моя текущая модель имеет следующие два поля:
period_start = models.DateField(null=False)
period_end = models.DateField(null=False)
Редактировать 8-5-2018 10:32: добавлена информация по хранению данных
Некоторая дополнительная информация для большей ясности:
Я храню свои данные в двух таблицах: (1) определение переменной и (2) значения.
Определение переменной выглядит примерно так:
class VarDef(models.Model):
name = models.CharField(max_length=2000, null=False)
unit = models.CharField(max_length=20, null=False)
desc = models.CharField(max_length=2000, blank=True, null=True)
class VarValue(models.Model):
value = models.DecimalField(max_digits=60, decimal_places=20, null=False)
var = models.ForeignKey(VarDef, on_delete=models.CASCADE, null=False,
related_name='var_values')
period_start = models.DateField(null=False)
period_end = models.DateField(null=False)