Multi tenant Django

a marqué ce sujet comme résolu.

Bonsoir,

Je viens vers vous avec un problème auquel je fais face depuis quelques jours sous un environnement multi schéma de base de données.

Tout vient de l’architecture, je travaille sous une application qui met en place le multitenant et plus précisément une base de données avec plusieurs schémas sous postgresql qui le supporte assez bien et je développe l’application sous Django (une API en fait).

J’ai donc un modèle Type qui est relié à plusieurs autres modèles, pour mon exemple ici je prendrais un seul modèle à l’instar de Ressource (chaque modèle possède un Type)

Pour le moment, j’ai développé l’application de telle sorte que chaque client (qui représente un schéma privé) puisse enregistré ses types et ses ressources et cela se passe sans soucis.

Il faudrait pouvoir donner la possibilité à l’administration (donc nous) qui opérons sur le schéma public de pouvoir créer aussi des types d’où j’ai créé un nouveau modèle Type (dans le schéma public) et nous renseignons les valeurs aussi sans problème.

Le véritable problème commence ici, il faudrait que chaque client lorsqu’il récupère la liste des types puissent avoir accès à ses types mais aussi à ceux que l’administration à créer mais sans pouvoir les modifier, ni supprimer etc… Juste de la visualisation des types créés par l’admin. Je suppose que je peux faire ceci via une requête UNION en base de données (vu que les 2 tables sont identiques) et ensuite ajouter un ou 2 champs pour informer le front de la provenance du type.

Par contre la seconde partie, je ne sais pas comment la résoudre: la relation entre le type et la ressource. Vu qu’il peut à la fois être relié à un type du schéma privé ou alors un type du schéma public.

Comment résoudre ce problème sachant que je ne peux pas

  • Définir un seul type (dans le schéma public) et ajouter un champ permettant de distinguer les types de chaque client pour empêcher la lecture d’un autre client
  • Importer les types du schéma public vers le schéma privé, car comment cela va t’il se passer en cas de modification (ou suppression) d’un type du schéma public qui a été importé dans un schéma privé.

Je m’en remets à vous pour des pistes.

Merci de votre aide.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte