Как для каждого пользователя сделать отдельную БД?
Пишу сервис личных блогов где при переходе на главную сайта будет выводиться шаблон авторизации и регистрации.
Авторизованный Пользователь вводит свои данные авторизации и видит свои записи которые он оставлял.
Как при таком раскладе работает база данных, что делать?
Mellorn, Что то наподобие твиттера но без публичного просмотра своих записей, все максимально просто.
Заходишь в аккаунт и видишь свои записи которые видны только тебе)
Есть, правда, одна проблема. MySQL не поддерживает row-level security. А потому выполнить полное разграничение доступа в рамках одной таблицы невозможно.
Задача решается серверной логикой. Используются либо представления, либо хранимые процедуры, с принудительной фильтрацией в рамках заданных прав. Вот то самое WHERE user_id = CURRENT_USER()
Ну а отдельные БД под каждого пользователя - такой вариант лучше даже не рассматривать. Хотя бы исходя из принципа, что пользовательский код никогда и ни при каких обстоятельствах не должен выполнять DDL-запросы.
А в чём сложность в модели сделать связь User --o{ Post ?
Выбираем потом просто id пользователя и выбираем его посты...
Что то автор вопроса слишком заморочился...