У вас есть несколько вариантов:
Вы можете отсоединить вашу пустую базу данных, а затем, когда пользователь зарегистрируется, скопировать эту базу данных и смонтировать ее под уникальным именем для него и сопоставить ее с учетной записью в вашей основной базе данных, скажем.
Вы можете создать базу данных с нуля, используя сценарии, и заполнить любые базовые данные либо из онлайновой базы данных шаблонов, либо из сценариев базовых данных и сопоставить их с их учетной записью в основной базе данных.
Вам следует серьезно подумать о переходе на мультитенантную архитектуру, где все пользователи находятся в одной базе данных (большинство таблиц имеют столбцы CustomerID для разделения данных), если у вас будет несколько десятков клиентов.
Что касается ваших заметок о варианте 3 - это зависит от вашего приложения. Мультитенант может быть сложно дооснастить. С другой стороны, управление и обновление сотен отдельных клиентских баз данных может быть затруднено в долгосрочной перспективе.
Ранее задавались вопросы о переполнении стека:
Каковы преимущества использования единой базы данных для КАЖДОГО клиента?
Одна база данных или много?
Думаю, я увижу, как пометить их multi-tenant-db или чем-то еще. В любом случае, я думаю, что это возникает из-за того, что ваш ответ о конкретной тактике является вторичным, и показывает важность включения подробностей о ваших общих целях в стратегию в каждом вопросе о StackOverflow.