Я работаю над веб-бизнес-приложением, где каждому клиенту необходимо будет иметь свои собственные данные (думаю, модель типа basecamphq.com). Для масштабируемости и удобства - я предпочитаю иметь одну базу данных, в которой каждый клиент получает отфильтрованную версию данных. Проблема заключается в том, как гарантировать, что они остаются изолированными от своих данных. Попытка принудительного применения кода в коде кажется катастрофой, ожидающей своего появления. Я знаю, что Oracle имеет способ добавить предложение where к каждому запросу на основе идентификатора входа, но имеет ли Postgresql что-то подобное?Postgresql - одна база данных для каждого или одна база данных для каждого клиента
Если нет, есть ли другой шаблон дизайна, который я мог бы использовать (например, создание каждой таблицы для каждого фильтра, который фильтрует)?
Худший сценарий сценария, какова производительность/память из-за наличия 1000 100M баз данных и наличие одной базы данных 1Tb? Мне нужно будет обеспечить функциональность резервного копирования/восстановления на основе каждого клиента, которая является мертвой простой в одной базе данных, но довольно сложной, если они делят базу данных с другими клиентами.
Это похоже, что он может работать. Для этого требуется отдельный вход для каждого пользователя, что затруднит объединение пулов. Есть ли у вас опыт работы на рабочем месте? –
@John: Нет, не в производстве. Несколько месяцев назад я занимался консалтинговым концертом для компании, и они рассмотрели возможность, но решили пойти другим путем. –
Я думаю, вам придется жить с каждым клиентом, иначе любая песочница будет бесполезной, так как это будет клиентская или прикладная сторона, и прямой доступ сломает вашу песочницу. – MkV