Давайте попробуем еще раз.
Если вы хотите, чтобы они могли создавать свои собственные схемы, то почему бы не построить схему, используя, о, я не знаю, утверждение CREATE TABLE. У вас есть полная лодка, полнофункциональная, мощная база данных, которая может делать удивительные вещи, такие как определение схем и хранение данных. Почему бы не использовать его?
Если вы просто собирались сделать какие-то специальные свойства, тогда обязательно.
Но если это "карт-бланш, они могут делать все, что хотят", тогда пусть.
Должны ли они знать SQL? Ммм нет Это ваша задача пользовательского интерфейса. Ваша задача как разработчика инструментов и приложений - скрыть реализацию от пользователя. Поэтому представьте списки полей, линий и стрелок, если вам нужны отношения и т. Д. Что угодно.
Люди годами создавали «конечные пользователи», «простые» инструменты для работы с базами данных.
"Что если они захотят добавить столбец?" Затем добавьте столбец, базы данных делают это, по крайней мере, самые хорошие. Если нет, создайте новую таблицу, скопируйте старые данные, отбросьте старую.
"Что, если они хотят удалить столбец?" Смотри выше. Если вы не можете удалить столбцы, удалите их из логического представления пользователя, чтобы оно выглядело как удаленное.
"Что если у них одиннадцать миллиардов строк данных?" Затем у них есть одиннадцать миллиардов строк данных, а операции занимают в одиннадцать миллиардов больше времени, чем если бы у них был один ряд данных. Если у них есть одиннадцать миллиардов строк данных, они, вероятно, не должны использовать вашу систему для этого.
Увлечение «Реализация баз данных в базах данных» ускользает от меня.
«У меня здесь Oracle, как я могу предложить меньше возможностей и сделать медленнее для пользователя?»
Ну и дела, интересно.