Как использовать режим формы для многих пользователей
В настоящее время я задаюсь вопросом, как мне управлять большим количеством пользователей в моде, которые имеют свои собственные данные (почти ничего не сообщая). Примером проблемы, о которой я сейчас думаю, является модель Dropbox: у каждого есть свой собственный Dropbox с личными файлами, которые не обязательно должны быть переданы кому-либо еще.
Должен ли я создать новое рабочее пространство для каждого пользователя или было бы лучше иметь большое дерево, где под корневым узлом есть узлы для всех пользователей?
Ограничено ли количество рабочих областей modehape?
Спасибо за любые подсказки.
1 ответ
Существует практическое ограничение на количество рабочих пространств в ModeShape, поскольку ими необходимо управлять, и это управление не предназначено для поддержки неограниченного количества рабочих пространств. Как правило, JCR подразумевает определенное поведение между рабочими пространствами, и рабочие пространства JCR никогда не предназначались для использования отдельными данными, независимыми от пользователей.
Я бы предложил использовать один репозиторий и рабочее пространство для хранения всего контента для всех пользователей, где иерархия узлов рабочего пространства используется для разделения и связывания контента с конкретными пользователями. Просто имейте в виду, что JCR - это, в частности, иерархическая база данных: не помещайте всех пользователей ниже одного узла, так как это создаст действительно плоскую иерархию (которая не работает в любой реализации JCR). Вместо этого просто создайте небольшую иерархию, основанную на ваших именах пользователей или идентификаторах пользователей. (Обратите внимание, что даже файловые системы имеют свои ограничения: вы не можете поместить миллионы файлов в одну папку.)
На самом деле, это ничем не отличается от того, если бы вы использовали реляционную базу данных для хранения данных для большого количества пользователей. Немногие архитектуры создали бы новую базу данных для каждого пользователя; вместо этого служба, скорее всего, будет использовать одну базу данных, в которой каждая строка связана с одним пользователем, а служба обеспечивает безопасность и применение.