Partage
  • Partager sur Facebook
  • Partager sur Twitter

Organiser sa base de donnée

7 juillet 2019 à 21:16:04

Salut les Zéros !

Je me trouve face à un problème pour l'organisation de ma base..

Jusque ici, tous mes projets ne contenait qu'1 seule table, et je me contentait de lire et écrire des données. Mais j' ai en tête un projet plus compliqués et les connaissance que j'ai en bdd ne suffisent pas.

En gros sur mon site, j'aimerais :

  • qu'un utilisateur puissent créer des exercices (liés à son compte),
  • qu'il puissent également créer des séances (liés à son compte), constitué des exercices précédemment créés (chaque exercices peut être utilisé dans plusieurs séances à la fois),
  • qu'il puissent également créer des programmes(liés à son compte), constitué des séances précédemment créés (chaque séances peut être utilisé dans plusieurs programmes à la fois).
Petit schéma pour le swag :

Et ici, a part créer 3 tables (exercices, séances, programmes) par personnes ayant un compte (solutions qui me semble assez peu professionnelle), je ne voit pas comment faire.

Donc si quelqu'un à de la doc sur ce sujet ou des explications.. voilà !

A+ dans l'bus

  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2019 à 10:33:46

Bonjour,

Il faut que tu te penches sur les méthodes de modélisation de données (modèle entité/relation). Je te conseille la lecture du doc "Conception BDD" dans ma signature qui est très bien fait et abordable aux débutants. Le logiciel JMerise pourra également te faciliter la vie pour générer le SQL.

Dans ton cas tu as 3 entités : Utilisateur, Exercice et Séances, donc 3 tables.

Côté relations :

  • un exercice est créé par un utilisateur et un utilisateur peut créer plusieurs exercices. C'est une relation 1,n qui implique une clé étrangère utilisateur dans la table exercice.
  • une séance est créée par un utilisateur et un utilisateur peut créer plusieurs séances. C'est une relation 1,n qui implique une clé étrangère utilisateur dans la table séance.
  • une séance peut avoir plusieurs exercices et un exercice peut apparaître dans plusieurs séances. C'est une relation n,n qui implique une table de relation.

Ton modèle serait donc :

  • utilisateur ( id [pk], nom, etc. )
  • exercice ( id [pk], id_utilisateur [fk], description, etc. )
  • seance ( id [pk], id_utilisateur [fk], date_heure, etc. )
  • seance_exercice ( id_seance [pk][fk], id_exercice [pk][fk] )

Approprie-toi bien le document conseillé, et JMerise, et tout devrait bien se passer ;)

Il est crucial de bien comprendre la notion de clé primaire (pk) et de clé étrangère (fk).

Après côté programmation, il va y avoir des subtilités propres au langage utilisé pour gérer la table de relation ... Mais chaque chose en son temps :p

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
8 juillet 2019 à 15:03:04

Re, 

Merci beaucoup pour le document que tu m'as envoyé, ça éclairci 2-3 p'tits trucs ;)

J'ai fini la 1ère partie (Modèle Conceptuel de Données) et j'ai pu établir le schéma entités-associations suivant :

Dans mon entité Séances je veux avoir une suite de n exercices, ayant chacun une position et un nombre de répétition. Je ne vois pas encore comment le formaliser dans le schéma..

  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2019 à 15:55:45

Attention, tu as 3 relations différentes entre utilisateur et le reste, ce n'est pas une relation unique ...

ClapAknote a écrit:

Dans mon entité Séances je veux avoir une suite de n exercices, ayant chacun une position et un nombre de répétition

Je ne sais pas trop comment te répondre ... Vu comme ça, je dirais que la position et la répétition d'un exercice semblent être des attributs de la relation entre exercice et séance ...

Le modèle serait donc :

-
Edité par Benzouye 8 juillet 2019 à 15:56:03

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
8 juillet 2019 à 16:25:07

Oula t'as raison c'est ça qu'il faut faire. J'était en train de me faire des nœuds à la tête pour rien du tout :o

T'as un p'tit soft pour faire ce jolie schéma ? :o :)

Merci  beaucoup en tous cas, je fini de lire ton document et j'apprend à utiliser les outils qu'il faut ! :D :D

  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2019 à 16:56:36

ClapAknote a écrit:

T'as un p'tit soft pour faire ce jolie schéma ? 

Benzouye avait écrit plus tôt :

Le logiciel JMerise pourra également te faciliter la vie pour générer le SQL

-
Edité par Benzouye 8 juillet 2019 à 16:56:50

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL