8768 sujets

Développement web côté serveur, CMS

Bonjour, je suis en cours d'apprentissage du PHP, JS et MySQL, et je suis actuellement en train de créer une application en ligne. Pour cela j'aimerai que chaque utilisateurs puisse avoir accès à leur compte, et plus particulièrement à leurs informations perso, qu'ils rentrent, modifient, supprime, en bref, leur tableau de bord....Ils en font ce qu'il veulent. Seulement si je créer des tables "information1", "informations2", "informations3", etc... toutes les informations de tous les utilisateurs seront dans une même table? Je me trompe?
Ce que j'aimerai savoir c'est si il est possible, et si oui, comment s'y prendre, de créer une table "informations1" qui est propre a cet utilisateur, c'est a dire, qu'il y figure seulement ses propres données, et de même pour tout les utilisateurs... En gros, que chaque utilisateur ai "leur propre bdd" Smiley smile
Dites moi si je n'ai pas été clair, je reformulerai
Merci
Modérateur
melER5 a écrit :

Dites moi si je n'ai pas été clair, je reformulerai


Et l'eau,

Tu n'es pas clair dans ton énoncé. Peux tu nous indiquer le mcd/mpd de ta base de données ?
Modifié par niuxe (20 Feb 2020 - 08:53)
D'autre part tu ne fais jamais une base de donnée ou plutôt une table relative à un seul utilisateur, ça n'a pas vraiment de sens.
Salut,

Si j'ai bien compris, "est ce que c'est possible?" je pense que oui, mais la question de mon point de vue c'est plutôt "est ce que c'est utile?".
Si tu commences à avoir plusieurs dizaines/centaines/milliers de giga de données par utilisateurs en base de données, cela doit pouvoir être une façon de séparer les données de manière plus ou moins "cohérente" sur différents serveurs et ainsi de mieux repartir la charge.
Vu qu'a priori tu n'es pas dans ce cas la, c'est que ce n'est sans doute pas utile et que du coup tu peux tout stocker dans une seule base de données.

Après j'ai l'impression que ta vision des bases de données est très floue et que tu devrais sans doute commencer par t'améliorer sur ce point la.

Il faudrait fournir plus d'informations sur ton "application en ligne" et sur ce que tu as compris, ce que tu penses avoir compris mais qui nécessite une confirmation et sur ce que tu n'as pas compris sur le trio php+js+mysql (trio que je trouve un peu bizarre pour débuter, perso j'aurai plutôt fait d'un coté html+css+js, d'un autre php+mysql(+eventuellement html) et seulement ensuite le combo des 5 pour avoir une chouette appli)
Bonsoir à tous,

je m'explique mieux...En fait, il s'agit d'un planning en ligne pour les entreprises, qui inclus des informations sur les salariés tel que le nom, la spécialité, le taux horaire (qui est là pour calculer automatiquement les heures) etc... mais aussi des informations concernant les véhicules, le matériel, etc... Chaque client (chaque entreprise) rentre ses données perso, qui sont affichés selon l'onglet du menu sélectionné.
Exemple : si le client clique sur "salarié", il tombe sur un tableau qui répertorie tous les salariés que l'entreprise a enregistré. Bien sur, elle peut les supprimer, modifier, etc...
C'est le même principe pour le matériel, véhicules et autres informations indispensable a un planning complet.
Donc c'est au niveau de la conception de la base de donné, je ne sais pas vraiment comment m'y prendre...également pour laisser des droits de suppression, modification, enregistrement aux clients (pour qu'ils puissent modifier leurs infos à leur guise).

Pour le mcd/mpd de la base, bennn...justement, je ne sais pas comment m'y prendre, comment l'organiser...

merci à vous
Modérateur
bacasable a écrit :
D'autre part tu ne fais jamais une base de donnée ... relative à un seul utilisateur, ça n'a pas vraiment de sens.


faux (tu remarqueras que j'ai omis table dans ta citation) ! Tu crées une base de données pour **un** seul utilisateur pour par exemple gérer sa config ou ses données strictement personnelles. L'utilisation de sqlite (base de données mono utilisateur) et la base de données au sein de son espace interne sur le serveur est un peu comme si l'utilisateur enregistre/upload ses images dans son espaces interne à l'application.

un des avantage :
Si c'est bien géré, il améliore la sécurité. Il donne tous les droits nécessaire sur sa base de données tandis que les droits d'accès à la base de données de l'application en général seront restreints.

un des inconvénient :
Chaque fois que l'utilisateur crée ou accède à sa base de données, il va falloir gérer la connexion à la base de données du système (l'application en général) et gérer la connexion à sa base de données. Si ce n'est pas bien fait, ça peut vite être un vrai bordel à maintenir ou à faire évoluer. Surtout si certaines données sont relativement communes.

définition d'une base de données multi utilisateur :
Une base de données multi-utilisateur est conçu pour permettre à plusieurs utilisateurs d'utiliser la database simultanément. À l'inverse, si plusieurs utilisateurs utilisent une base de données mono utilisateur, les perfs vont tomber puisque chaque requête ne seront pas effectuées simultanément.

melER5 a écrit :


Pour le mcd/mpd de la base, bennn...justement, je ne sais pas comment m'y prendre, comment l'organiser...

ressources Merise
Modifié par niuxe (21 Feb 2020 - 08:40)
@niuxe C'est surtout l'art de couper les cheveux en 1000, a partir du moment où les données de tes utilisateurs doivent être récupérées de manière commune tu auras de toutes façon des tables en commun.

Après oui, tu peux tout découper dans des bases différentes mais ce genre de schéma reste réservé à des besoins très spécifiques. Avec en plus un bénéfice très limité relativement a la complexité de gérer ce genre de chose.

Bref ma remarque sert surtout à dire que ce n'est pas une bonne idée de faire ça, pas que c'est impossible. Smiley cligne
Bonjour a vous,
Merci d'abord de prendre du temps pour l'aider!
Donc si j'ai bien compris, si les clients doivent renseigner leurs salariés, je doit simplement créé une table salarié dans une unique data base pour mon site? Du coup, tout les salariés et toutes les entreprises confondus se retrouverait sur la même table?
Merci a vous !
Smiley smile
Attention car ce que tu appelles utilisateur n'est pas du tout explicite. Perso j'ai pas du tout compris que c'était une entreprise avec ses propres données.

Globalement si tes données n'ont rien à voir entre-elles il vaut peut être mieux alors en effet séparer tes données dans différentes bases. Ceci car ça évitera notamment a ton appli de s’alourdir trop rapidement à cause de la taille de la base et ce sera plus simple et moins stressant pour la maintenance.

Maintenant si tu ne comptes jamais avoir beaucoup de données le fait d'avoir une seule base peut aussi être plus intéressant. Car c'est plus simple à déplacer, il y a une seule base à maintenir.

Bref, il n'y a pas une réponse à ce genre de question mais n possibilités qui vont surtout dépendre des besoins et fonctionnalités finales de ton application. D'ailleurs a ta place je commencerai par lister l'ensemble de celle-ci avant de construire mes bases/tables.
Bonjour a vous,
Merci d'abord de prendre du temps pour l'aider!
Donc si j'ai bien compris, si les clients doivent renseigner leurs salariés, je doit simplement créé une table salarié dans une unique data base pour mon site? Du coup, tout les salariés et toutes les entreprises confondus se retrouverait sur la même table?
Merci a vous !
Smiley smile
Hello oui
tout les salariés se retrouvent dans la table "salariés".

ils doivent tous avoir un ID unique de préférence autoincrementé
puis ils ont les même champs, taux horaire, nom, prénom, adresse etc.... etc...
Bonjour, d'accord merci!
Je suppose donc que toutes les informations du même type, comme le matériel d'une entreprise, se retrouve aussi dans la table "matériel", qui contiendra donc tout le matériel de tous les utilisateurs du site?
Merci de m'aider!
oué matériel peut avoir sa propre table. coupler avec une autre table "type" pour le type de matériel.