Es una base de datos multiinquilino:
- ¿Un servidor de base de datos que tiene una base de datos / esquema (idéntico) diferente para cada cliente / inquilino ?; o
- ¿Un servidor de base de datos que tiene una base de datos / esquema donde los clientes / inquilinos comparten registros dentro de las mismas tablas?
Por ejemplo, en la Opción # 1 anterior, podría tener un servidor MySQL en, digamos mydb01.example.com
, y podría tener una customer1
base de datos dentro de él. Esta customer1
base de datos puede tener, por ejemplo, 10 tablas que potencian mi aplicación para ese cliente en particular (Cliente # 1). También podría tener una customer2
base de datos con exactamente las mismas 10 tablas, pero que solo contenga datos para el Cliente # 2. Puede tener una customer3
base de datos, una customer4
base de datos, etc.
En la Opción # 2 anterior, solo habría una única base de datos / esquema, digamos myapp_db
, nuevamente con 10 tablas (las mismas que las anteriores). Pero aquí, los datos de todos los clientes existen dentro de esas 10 tablas y, por lo tanto, "comparten" las tablas. Y en la capa de aplicación, la lógica y el control de seguridad a los que los clientes tienen acceso a qué registros en esas 10 tablas, y se tiene mucho cuidado para garantizar que el Cliente # 1 nunca inicie sesión en la aplicación y vea los datos del Cliente # 3, etc.
¿Cuál de estos paradigmas constituye un DB tradicional "multiinquilino"? Y si ninguno de los dos, ¿alguien puede darme un ejemplo (usando los escenarios descritos anteriormente) de lo que es un DB multiinquilino?