Bonjour à tous,

Je travaille sur un projet depuis pas mal de temps et va bientôt arriver le temps de le commercialiser. C'est une application CakePHP / Mysql qui permet de faire de la gestion de maintenance d'équipements. Pas besoin de vous expliquer ce que l'appli fait mon pb se situe plutôt à un niveau au-dessus.

Pour le moment j'ai une seule base de données contenant une table users permettant de définir des utilisateurs (admin ou user simple) avec des droits sur les actions qu'ils peuvent faire ou non. Je suis resté très simple là-dessus, me focalisant plutôt sur le fonctionnel.

Je vais maintenant aborder la structure à mettre en place en fonction des clients, j'aimerai avoir des avis sur :

  • Je suppose qu'il faut créer une base de donnée pour chaque client... Je souhaite que certains clients (pas tous) puisse éventuellement faire des requêtes sur certaines informations d'autres clients ayant accepté de partager celles-ci.

  • nous voulons proposer une version d'essai limitée, quelle architecture adopter pour pouvoir limiter le nombre d'enregistrements dans la base ? Au sein de MySQL (avec des triggers par ex...) ? Par extension, le type d'abonnement du client va définir le nombre d'enregistrements qu'il pourra stocker dans la base...

  • Si des pistes au niveau de CakePHP pour mettre en place tout ça je suis preneur.

Bonnes vacances pour les chanceux qui en ont !

1 réponse


amethyste
Réponse acceptée

Pas besoin de plusieurs bases de données. Ce sera même plus simple si tu dois requêter sur d'autres clients.

Rajoute un champ "nombre d'enregistrement restants" dans la table users que tu décrémente en fonction des actions de ton client. Et dans l'action où il est supposé ajouter un enregistrement, tu vérifies qu'il lui reste du "crédit" dans ce fameux champ, sinon redirige vers la page des différents abonnements :-)

Il te faut donc aussi une table "abonnements" dans laquelle tu définies le nombre d'enregistrement qui seront crédités au client en souscrivant au plan choisi.