Имя таблицы переменных в Django - PullRequest
1 голос
/ 18 января 2011

Могу ли я использовать имя таблицы переменных для отображаемых в БД объектов?Например, существует n объектов одинаковой структуры, и я хочу сохранить их в разных таблицах, чтобы повысить производительность некоторых операций.

Допустим, у меня есть класс, определенный как:

class Measurement(models.Model):
    slave_id = models.IntegerField()
    tag = models.CharField(max_length=40)
    value = models.CharField(max_length=16)
    timestamp = models.DateTimeField()

    class Meta:
        db_table = 'measurements'

Теперь все объекты хранятся в таблице «Измерения».Я хотел бы сделать имя таблицы зависимым от значения 'slave_id'.Например, для обработки данных из таблиц «измерений_00001», «измерений_00002» и т.д.

1 Ответ

2 голосов
/ 18 января 2011
  1. В большинстве случаев это не должно приносить вам никакого преимущества в производительности.Любая СУБД, достойная своей соли, должна легко обрабатывать огромные таблицы.

  2. Если это необходимо, может быть несколько осколков таблицы.Опять же, управляемый сервером БД;на уровне SQL (и ORM) его следует рассматривать как одну таблицу.В идеале дискриминация должна выполняться автоматически;в противном случае большинство СУБД позволяют вам указать его во время определения таблицы (или иногда настраивать с помощью ALTER TABLE)

  3. Если вы решите определить метод разделения, каждая СУБД имеет свой собственный нестандартныйметоды.Лучше не связывать свой код Python с этим;вместо этого выполните настройку один раз на сервере БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...