2016-01-28 3 views
-2

Можете ли вы взять данные формы и изменить схему базы данных? Это хорошая идея? Есть ли недостаток многих миграций из базы данных по умолчанию?Можно ли разрешить пользователям создавать и выполнять миграции баз данных из формы?


Я хочу, чтобы пользователи могли добавлять/удалять таблицы, столбцы и строки. Для внесения изменений схемы требуются миграции, поэтому для добавления этой функции потребуется написать представление, которое принимает данные формы и вставляет его в функцию, которая затем использует Flask-Migrate.

Если мне удастся построить это, не выполняйте ли миграции необходимые отдельные сценарии и все, что с ним связано, каждый раз, когда что-то добавляется или удаляется? Это практично для чего-то вроде этого, где в стартовую базу данных можно добавить 10 или 20 новых таблиц?

Если я разрешаю пользователям добавлять столбцы в таблицу, он должен будет изменить класс таблицы. Это возможно или безопасная идея? Если нет, я был бы признателен, если бы кто-то помог мне и, по крайней мере, заставил меня указывать в правильном направлении.

ответ

0

В типичном веб-приложении развернутая база данных не изменяет свою схему во время выполнения. Эта схема изменяется только во время обновления, и только разработчики вносят эти изменения. Операции, выполняемые пользователями в приложении, могут добавлять, удалять или изменять строки, но не изменять сами таблицы или столбцы.

Если вам нужно предложить своим пользователям способ добавления гибких структур данных, вы должны разработать схему базы данных таким образом, чтобы это было возможно. Например, если вы хотите, чтобы ваши пользователи добавляли собственные пары ключ/значение, вы могли бы иметь таблицу с столбцами user_id, key_name и value. Вы также можете исследовать, подходит ли база данных, не имеющая схемы, для ваших нужд.

Смежные вопросы