buloshnik
@buloshnik
мужик

Как динамически создавать таблицы в django?

Я новичок и пытаюсь написать пробное задание. Сам придумал, сам делаю.
Вопрос в следующем, не могу понять как написать модель.
У меня есть бд, у этой бд есть такие показатели как cpu, network, commit, system_io.
Что я хочу:
1. Модель для таблицы в которой хранятся параметры БД и подключения (имя, хост, пользователь, пароль)
2. Модель в которой будут храниться значение показателей этой БД.

Сама проблема в том, что я если у меня будет больше одной базы - то хочется для каждой отдельную табличку. И там уже хранить цпу и прочее.
Правилен ли такой подход? Если да - то как это реализовывается? Код не прошу за меня писать. Хочу понять как это должно работать. Ну если кто-то натыкался на примеры - буду рад посмотреть. Заранее спасибо.
  • Вопрос задан
  • 513 просмотров
Пригласить эксперта
Ответы на вопрос 3
@deliro
Я не очень понимаю, что ты хочешь, но если верить написанному - это ужас
1) У БД нет и не может быть "показателей" cpu, network и т.д. Могут быть поля таблицы.
2) Хранить в БД имя-хост-пароль (да ещё и нескольких баз)? Это надо сверхзащищённое что-то, чтобы так делать.
3) Зачем тебе несколько баз?
4) Таблицы создавать динамически неправильно.
Ответ написан
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Скорее всего придется работать через курсоры, и голыми руками лазать в базы... или даже лазать в базы через ssh-тоннели... Но скорее всего что-то не так с архитектурой того что вы задумали. Django не предусмотрено для этого. Там даже через курсоры лазить в БД имеет смысл только в крайних случаях, когда все что можно для повышения производительности уже сделано.
Ответ написан
Комментировать
Мне кажется вам необходимо пересмотреть архитектуру в целом.

Для 1го проекта 1 БД. Доступы подключения к ней в конфиги проекта.
База содержит таблицы.

К примеру, если вы пытаетесь сделать БД для каждого своего пользователя, то создайте таблицу "пользователь" и таблицу данных, таблицы связанные по ID пользователя. Так у каждого вашего пользователя будут свои данные.

Аналогично, к чему угодно.
  • Таблица объекта
  • Таблица данных объекта

Связь между ними по ID объекта. Таким образом у вас будет всего 2 таблицы, и вы легко сможете получить все данные, зная кому они принадлежать.

Как говорили ранее и я полностью солидарен, создавать динамически таблицы неправильно, а БД тем более.
Если вам кажется что это необходимо, то на 99% вам нужно пересмотреть архитектуру проекта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы