8722 sujets

Développement web côté serveur, CMS

Débutante en création de bdd sur PhpmyAdmin, j'ai besoin d'assistance pour l'organisation de mes tables...
A mon avis la solution est simple, mais je manque d'expérience..

Je souhaite créer une bdd pour les associations d'une ville, constituée de :
nom de l'asso, nom du president, nom du tresorier, nom du secretaire (+ le suppléants), date de creation, n° d'enregistrement en sous pref, scan de leur assurance, adresse du siege, coordonnées de tous les membres du bureau etc.
Une carte d'identité en somme, avec des variables.

Bref, je pensais que ce serait simple, mais je m'enbrouille..

Au départ, j'ai créé une table asso qui comprenait un id president (autre table president), un id tresorier (une autre table tresorier) etc.
Dans cette table asso, j'avais créé un id bureau, et toutes les tables president, tresorier etc. étaient liées à la table bureau et le bureau lié à la table asso.

Mon souci :
Dans cette configuration, quand je dois insérer les données, je dois ouvrir chaque table pour ça (pas très pratique). A mon avis, je m'y prend mal.

Si vous pouviez me donner une piste pour l'agencement des tables, merci d'avance
Bonjour, le plus simple et de créer qu'une seul table non !

Ci-non a quoi servira cette table ? Affichage de donne et info ou plus
Merci de votre réponse,

Cette base donnée association sera reliée au site internet de la mairie, et lorsqu'il y aura des mises à jour (il y en a souvent et de nombreuses), ce sera plus facile à gérer avec une bdd que d'aller modifier mon code html...(je suis encore à l'âge de pierre).

Je voudrais aussi pouvoir sortir des listings à jour, des présidents pour des mailings, et faire des tas de requêtes du style..quelle asso n'a pas fourni son assurance, son numéro d'enregistrement en sous pref, etc.
Pour info, si je créé une seule table, j'aurai 52 champs, ce n'est pas un souci?
nom asso, adresse siege, cp siege, ville siege, civilite president, nom, prenom, adresse, cp, ville, tel, port,email, photo (idem pour tous les membres du bureau), siren , site web etc.
Bonjour,

Les questions importantes me semblent être : est-ce que toutes les associations ont la même structure . le même nombre de gens au bureau ? Probablement pas. Des personnes peuvent-elles appartenir à plusieurs associations ? Sans doute. A-t-on besoin de changer la fonction d'une personne dans une association facilement ? Oui.

Dans ce cas la mauvaise solution serait de créer dans la table principale les champs nom_membre_01, fonction_membre_01, association_01, nom_membre_02, fonction_membre_02, associationn_02 etc jusqu'à ... combien ? combien de membres au maximum ? on ne peut pas le dire. Autre problème : si Vanessa qui était membre du bureau de l'assoc 14 en devient secrétaire, pas simple de faire la modif sans se tromper ou oublier quelque chose quelque part.
L'avantage d'une base de données, c'est d'organiser de liens entre les tables pour répondre à ce genre de problème
Ici je préconise une table "personnes", qui pourrait avoir ces champs :
personnes_id
personne_nom
personne_fonction
associations_id

Mais c'est insuffisant car plusieurs personnes peuvent être membre de différentes associations, et il n'est pas question que la même personne apparaisse plusieurs fois dans le fichier des personnes ...

il faut donc ne pas indiquer l'association d 'une personne, ni sa fonction, mais créer une table "personnes_to_associations" qui va faire le lien entre les personnes et les associations, elle aura les champs :
personnes_id
associations_id
fonction de la personne dans l'association

Si Marcel est président de l'association d'ID 7, et membre du bureau de l'association d'ID 12, on aura deux enregistrements le concernant dans la table "personnes_to_associations" :
ID de Marcel - 7 - Président
ID de Marcel - 12 - Bureau

Et pour vraiment être cohérent, on créer aussi une table des fonctions : président, trésorier, membre du bureau, autre...
fonctions_id
fonctions_intitule

et la table personnes_to_associations devient :
personnes_id
associations_id
fonctions_id

et là on peut faire face à toute évolution, créer de nouvelles fonctions si nécessaires, faire passer Marcel du poste de membre du bureau de l'association 15 à trésorier, et on peut interroger la base de données dans tous les sens, sortir tous les listings désirés, trier sur n'importe quels critères, lister les personnes regroupées par associations, etc. etc. les requêtes se faisant en utilisant les jointures, du type LEFT JOIN
Tous les champs de type "ID" seront des champs auto incrémentés unique, et tout fonctionnera sans problèmes et on ne se prendra plus le chou quand il faudra faire des modifs, des requêtes, des listings ou autre !