Таблицы являются гораздо более сложными объектами, чем строки, и управление созданием таблиц намного сложнее, чем вставка, которая должна соответствовать существующей модели, таблице. Правда, оператор создания таблицы - это стандартная операция SQL, но в зависимости от того, как он создается динамически, попирает плохие проектные решения.
Теперь, если вы просто создадите одну или две и все, или всю базу данных динамически, или один раз из сценария, это может быть хорошо. Но если вы зависите от необходимости создавать все больше и больше таблиц для обработки ваших данных, вам также нужно будет присоединяться все больше и больше и запрашивать все больше и больше. Одна очень серьезная проблема, с которой я столкнулся в приложении, использующем динамическое создание таблиц, состоит в том, что один запрос SQL Server может включать только 255 таблиц. Это встроенное ограничение. (И это SQL Server, а не CE.) Потребовалось всего несколько недель для достижения этого предела, что привело к неработающему приложению.
А если вы приступите к редактированию таблиц, например, добавляя / удаляя столбцы, ваша головная боль от обслуживания становится еще хуже. Существует также вопрос привязки данных вашей базы данных к логике вашего приложения. Другая проблема заключается в обновлении производственных баз данных. Это действительно было бы проблемой, если бы БД динамически увеличивался с объектами, и вам вдруг потребовалось обновить модель.
Когда вам нужно хранить данные таким динамичным образом, стандартная практика заключается в использовании EAV моделей . У вас есть фиксированные таблицы, и ваши данные добавляются динамически в виде строк, поэтому ваша схема не должна изменяться. Конечно, есть и недостатки, но обычно это считается лучшей практикой.