Relation entre les tables mysql

Eléphanteau du PHP | 34 Messages

23 sept. 2019, 10:44

Bonjour à toutes et à tous,

Petite présentation pas très glorieuse : html et css, ca va mais alors le php, quelle drôle de bête. J'ai suivi quelques cours, ça semble aller mais dès que je me retrouve face à mon écran blanc : gloups.

Donc venons en au sujet.

J'ai récup un script de "gestion d'espace membre de base"

Ce qui m'intéresse c'est que l'utilisateur puisse s'inscrire et se connecter. Ce que ce script fait admirablement bien.

Je voudrais y ajouter beaucoup de choses (ça sera un "site" pour un ami et moi) afin d'enregistrement des opérations financières.
Bref une date d'entrée, un montant d'achat, une date de sortie, un montant de vente et ainsi de suite (un peu comme une base de données access mais sous forme de site) Ces données seront introduites par le biais d'un formulaire.

Donc ma question sur la base du projet (et je bloque déjà :( )

J'ai une table nommée 'membres'
Je vais créer une table 'opérations'

Je voudrais que ces deux tables soient en relation afin que chaque membre puisse avoir ses opérations affichées quand il est connecté et reconnu par le site.

J'imagine donc que l'ID du membre sera copiée et sert à attribuer les opérations à chaque membre.

Est ce que mon raisonnement est bon ?
Si oui, comment faire cela ?

Avez vous une piste ou un terme ou explication qui me permettrait de trouver plus d'info sur le net.

Je vous remercie et vous souhaite une bonne journée.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 sept. 2019, 12:14

Il faut effectivement que tu travailles ton modèle de données, ça peut être un truc comme celà :

Table membres :
- id_membre (INT + AUTO_INCREMENT)
- nom
- email
-...

Table operations :
- id_operation (INT + AUTO_INCREMENT)
- id_membre
- date_entree
- montant_achat
- date_sortie
- montant_vente
- ...

J'ai créé pour chaque table un champ id qui est à mettre en index avec format entier et auto_increment qui sera créé automatiquement par MySQL comme valeur unique, ça te facilitera la vie pour faire référence à un membre ou à une transaction.
Et du coup c'est cette valeur que je te propose d'utiliser dans ta table operations pour savoir quel membre a fait l'opération.
Pourquoi utiliser un ID pour faire la liaison entre les deux tables (plutôt que le nom ou l'email), c'est tout simplement pour permettre à l'utilisateur de mettre à jour son nom ou son email, sans que cela "casse" la liaison.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

23 sept. 2019, 22:13

Bonsoir @rthur,

Je te remercie pour ces explications. Oui c'est le même principe qu'access, là je m'y retrouve ;)

Et pour la suite, comment la table des opérations va automatiquement ajouter l'id_membre dans la table des opérations.
Le but étant que le membre remplisse le formulaire sans devoir mettre son id (de plus il le connait pas ;) )

Donc comment php va ajouter automatiquement l'id_membre ?

Merci d'avance.
Bonne journée ou soirée ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 sept. 2019, 09:39

Ce n'est pas automatique, c'est dans ton code quand tu vas insérer une opération que tu vas devoir insérer l'id du membre qui est en train de faire cette opération
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

24 sept. 2019, 21:04

Merci @rthur, je fouille de ce côté ;)

Eléphanteau du PHP | 34 Messages

25 sept. 2019, 12:07

Bon fouilles déprimantes :(

Je me savais loin d'avoir les connaissances mais là je me noie littéralement.

Il faudra que je parte d'une base vierge car le code que j'ai trouvé est trop complexe pour que je m'en sorte et que j'ajoute ce que je veux.

Je retourne à mes chères études ;)

Merci en tout cas.