Я нахожусь на этапе планирования разработки приложения, которое будет включать пользователей, регистрирующихся на моем веб-сайте и хранящих данные. Я решил использовать Spring и Hibernate, но у меня есть пара вопросов, на которые я хотел бы получить ответы.
Мой первый вопрос касается разделения данных. Когда пользователь регистрируется на моем сайте, он сможет хранить данные, импортированные из другого источника. Количество данных (количество строк) для каждого пользователя будет расти очень быстро. Если я сохраню все пользовательские данные в одной базе данных, я ожидаю очень быстрых проблем с производительностью Чтобы решить эту проблему, я планировал создать новую базу данных для каждого зарегистрированного пользователя. Это может произойти на лету с помощью какого-либо сценария или другого программного решения. Это возможно? Кто-нибудь знает какой-либо шаблон проектирования, который решает эту проблему?
Мой второй вопрос связан с моим первым вопросом. Если возможно создать новую базу данных для каждого пользователя, как это будет работать в режиме гибернации? Очевидно, что я не буду перезапускать свое приложение каждый раз, когда новый пользователь регистрируется. Можно ли динамически настраивать режим гибернации для подключения к другой базе данных на основе некоторых критериев (в настоящее время зарегистрированный пользователь)? Если в систему одновременно войдут два пользователя, ожидаемое поведение будет состоять в том, что каждый пользователь будет иметь доступ только к данным в своей базе данных.
Спасибо.