È un database multi-tenant:
- Un server DB con un database / schema diverso (identico) per ciascun cliente / titolare; o
- Un server DB con un database / schema in cui i clienti / inquilini condividono i record all'interno delle stesse tabelle?
Ad esempio, con l'Opzione # 1 sopra, potrei avere un server MySQL a, diciamo, mydb01.example.com
, e potrebbe avere un database customer1
al suo interno. Questo database customer1
potrebbe avere, diciamo, 10 tabelle che alimentano la mia applicazione per quel particolare cliente (Cliente # 1). Potrebbe anche avere un database customer2
con le stesse stesse 10 tabelle, ma contenente solo i dati per il Cliente n. 2. Potrebbe avere un database customer3
, un database customer4
e così via.
Nell'opzione # 2 sopra, ci sarebbe solo un singolo database / schema, diciamo, myapp_db
, di nuovo con 10 tabelle (come sopra). Ma qui, i dati per tutti i clienti esistono all'interno di quelle 10 tabelle, e quindi "condividono" le tabelle. E a livello di applicazione, controllo della logica e della sicurezza a cui i clienti hanno accesso a quali record in queste 10 tabelle, e viene prestata la massima attenzione affinché il Cliente n. 1 non acceda mai all'app e veda i dati del Cliente n. 3, ecc.
Quale di questi paradigmi costituisce un tradizionale DB "multi-tenant"? E se nessuno dei due, allora qualcuno può fornirmi un esempio (usando gli scenari descritti sopra) di cosa sia un DB multi-tenant?