может каждый, и при регистрации ему создается магазин, так вот вопрос в том как хранить допустим товары,заказы и тд, под каждый магазин? Создавать под каждый магазин новую БД? Или лучше допустим в таблице товаров просто добавлять id магазина которому принадлежит этот товар?
Отдельную таблицу.
Есть два варианта: 1. Мультитенантная архитектура. Это когда одна база и общий код обслуживают множество организаций (твоих клиентов). 2. Мультиинстанс архитектура. Это когда под каждого клиента создаётся отдельная база и копия кода (!). То что ты описала, множество баз и одна копия кода - так нельзя делать. Нужно или делать для каждого клиента отдельную базу и код, или для всех пользователей одну базу и общий код, который умеет разделять данные пользователей. Например, по колонке в базе. Код который будет скакать по базам - это источник проблем и багов. Плюсы мультитенантного подхода: меньше администрирования, проще горизонтально масштабировать, равномерно распределять нагрузку. Плюсы мультиинстанс подхода: можно для конкретного клиента в его копии ПО делать изменения, которые не затронут других пользователей, выделать данные пользователя на отдельную машину или вовсе передать код и базу под управление клиента. Геораспределение проще. Например, клиентов из ЕС разворачивать на серверах в ЕС, а клиентов из России в России, при этом копии кода могут иметь небольшие различия для удовлетворения законодательств разных регионов. Насколько мне известно, bitrix24 использует мультиинстанс архитектуру (когда у каждого своя база и копия кода). Но могу ошибаться. Что ещё нужно предусмотреть? То что магазин и CRM - это две разные вещи. Их нужно независимо друг от друга разрабатывать. Связь между сервисом магазинов и CRM должна быть минимальна.
Обсуждают сегодня