Est une base de données multi-locataire:
- Un serveur de base de données qui a une base de données / schéma différent (identique) pour chaque client / locataire ?; ou
- Un serveur de base de données qui a une base de données / schéma où les clients / locataires partagent des enregistrements à l'intérieur des mêmes tables?
Par exemple, sous l'option n ° 1 ci-dessus, je pourrais avoir un serveur MySQL sur, disons mydb01.example.com
, et il pourrait avoir une customer1
base de données à l'intérieur. Cette customer1
base de données pourrait avoir, disons, 10 tables qui alimentent mon application pour ce client particulier (client n ° 1). Il peut également customer2
contenir une base de données contenant exactement les mêmes 10 tables, mais contenant uniquement des données pour le client n ° 2. Il peut avoir une customer3
base de données, une customer4
base de données, etc.
Dans l'option n ° 2 ci-dessus, il n'y aurait qu'une seule base de données / schéma, disons, myapp_db
avec encore 10 tables (les mêmes que ci-dessus). Mais ici, les données de tous les clients existent à l'intérieur de ces 10 tableaux, et ils "partagent" donc les tableaux. Et au niveau de la couche application, la logique et le contrôle de sécurité auxquels les clients ont accès à quels enregistrements dans ces 10 tables, et un grand soin est pris pour s'assurer que le client n ° 1 ne se connecte jamais à l'application et voit les données du client n ° 3, etc.
Lequel de ces paradigmes constitue une base de données traditionnelle "multi-tenant"? Et si ni l'un ni l'autre, alors quelqu'un peut-il me fournir un exemple (en utilisant les scénarios décrits ci-dessus) de ce qu'est une base de données multi-tenant?