Я разрабатываю webapp, где каждый пользователь будет обращаться к своим собственным данным.Владение пользовательской базой данных в webapps
Подумайте о ключевой трекере и такое, как, например, и предположим, каждый пользователь будет хранить 2 различные типы данных, например, так:
table project
id | name
0 | foo
1 | bar
table story
id | name | effort
1 | baz | 5
2 | ex | 2
Я могу думать 2 решений.
1) Обеспечить каждую таблицу с дополнительным user_id
колонки, так что каждый данных связан с его владельцем
2) Настройка новой схемы базы данных для каждого нового пользователя
Лично я больше на 2) потому что он обеспечит более высокий уровень безопасности (не связанный с уровнем приложения).
Что было бы рекомендуемым способом и почему?
Это зависит от вашего предполагаемого использования данных. Если у вас много запросов, которые объединяют данные для разных пользователей, вы пожалеете о создании отдельных схем. Если вы никогда этого не сделаете, отдельные схемы, вероятно, будут проще в целом. У вас будет больше работы, чтобы няни многих баз данных, но не много. –
Спасибо. У вас есть опыт использования отдельных схем? Любые объективные данные об издержках на техническое обслуживание этого решения вызовут? – brazorf
Я никогда не строил параллельные scemas, но меня вызвали, чтобы исправить базы данных, построенные таким образом. –