Почему не рекомендуется динамическое создание таблиц в бд?

При разработке проекта возникла необходимость автоматически генерировать таблицу в бд под каждого нового пользователя, чтобы упорядочить данные и облегчить поиск. Но этот подход считается в корне неверным. Объясните, почему? Нужен ответ, а не рекомендации.
  • Вопрос задан
  • 1004 просмотра
Решения вопроса 1
OnYourLips
@OnYourLips
https://habr.com/ru/post/254773/

Нужен ответ, а не рекомендации.
Если вы нарушите рекомендации, то получите сложноподдерживаемый продукт.
Однако нарушать можно, если вы готовы к последствиям.
Иногда нужно, если цель сложная, и последствия вынужденные (точно не ваш случай).
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
maximw
@maximw
В MySQL одна таблица представляет собой на диске несколько файлов (2-3). Это влечет за собой некоторые проблемы. Например, ограниченное число дискрипторов открытых файлов с ОС, замедление файловой системы при поиске в директории, где очень много файлов. Если пользователей у вас не много, делать отдельные таблицы смысла нет. Если много, то вы упретесь в эти проблемы.
Ответ написан
usdglander
@usdglander
Yipee-ki-yay
Используйте Представления (View) для таблиц. В общих чертах это функция БД, которая ассоциирует конкретный запрос с именем таблицы. Работа с представлением практически будет аналогична работе с обычной таблицей, но без постоянного создания/уничтожения временной таблицы.
Ответ написан
php666
@php666
PHP-макака
не рекомендуется динамическое создание таблиц в бд
вполне можно и допустимо.

возникла необходимость автоматически генерировать таблицу в бд под каждого нового пользователя, чтобы упорядочить данные и облегчить поиск .... Нужен ответ...
это нам бы хотелось услышать ответ, с чего такая необходимость))
Ответ написан
tema_sun
@tema_sun
Это очень фиговое решение, т.к. даже пустая таблица занимает место и файлы на диске. Ну и плюс это стопроцентный анти-паттерн и ваши коллеги разработчки будут очень долго плеваться и ругаться.
Ответ написан
@v_m_smith
лучше бы я пил и курил
Вот тут неплохие ответы, почему не стоит делать tables per user https://stackoverflow.com/q/7544544/1845302
А именно в динамическом DDL имхо нет ничего плохого.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы