Как в Django динамически создавать таблицы в базе данных по условию?
Добрый день.
Совсем я новичок в разработке и в джанго. Понимаю, что нужно читать туторы, проходить уроки прежде чем реализовывать что-то свое, но не могу удержаться - есть проект который очень хочется сделать.
Как создавать таблицы в БД в зависимости от действий пользователя? Например он добавил какой-то материал, описание которого я задал в models.py, и мне нужно чтобы вместе с этим материалом создавались таблицы которых ранее не было в базе данных, связанные с таблицами материала, описанного в models.py для которого джанго уже создала таблицы.
Условие для появления таблиц в базе - появление данных в существующих таблицах базы.
Кажется вы не тем занимаетесь. Динамическое создание моделей и таблиц - крайне специфичная задача. Если вы создаете новую таблицу при каждом чихе пользователя - это неправильно.
Но для справки - создание динамических моделей
спасибо за ответ. Поясните пожалуйста - почему такое поведение может быть неправильным?
Я думаю таким образом: создается основной объект, вокруг которого строится инфраструктура, принадлежащая этому объекту. Объектов может быть несколько сотен или тысяч. Количество таблиц описывающих окружение объекта, 5-10. Количество записей в одной такой таблице - до тысячи.
Если опираться на существующие модели, то получится, что в одной таблице будет хранится информация связанная с разными объектами - малое количество таблиц, но большое количество записей. Если будет несколько сотен объектов, то может быть несколько сотен тысяч записей в таблице, которая обслуживает эти сотни объектов. Не лучше ли будет создать несколько таблиц но с меньшим количеством записей?
Конечно я могу очень ошибаться, но мне кажется, лучше сделать объекты и их инфраструктуру максимально независимыми друг от друга.
Я не разбираюсь в этой предметной области (веб-разработка, базы данных), и искренне прошу совета.