|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Bonsoir à tous,
Je conçois une base de données de Projets. Ces projets ont des maîtres d'ouvrages, des participants, des personnes ressources, ... Aussi bien des personnes physiques (particuliers, salariés, ...) que des personnes morales (structures). Je suppose que c'est une question de base en conception de BDD, et je m'excuse d'avance si la réponse a déjà été donnée (j'ai une mauvaise connexion, et les recherches que j'ai lancé ne m'ont pas donné la réponse...). Je voudrai donc votre avis concernant la structure de ce genre de BDD. Sachant que : - un individu peut appartenir à plusieurs structures, avec différentes fonctions,Merci d'avance pour votre aide ! Bonne soirée. Sylvain |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
En plus de ces informations, ce serait bien que l'on voit un schéma relationnel de ta base, pour voir si tu as bien mis en pratique ce que tu as écrit. De plus, c'est plus parlant qu'un long discours. Starec |
|
|
00
|
|
|
#3 | |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Citation:
![]() Bon, les champs des tables ne sont pas du tout définitifs, c'est surtout la relation entre chacunes qui fait l'objet de la reflexion. La table centrale est celle des projets, qui se décline en plusieurs "sous-tables" suivant le type de projet (pour l'instant, 2 types, mais à l'avenir beaucoup plus). Qu'en pensez-vous ? ![]() Sylvain |
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : juin 2008 Messages : 2 689 ![]() |
Le schéma correspond à ce que tu racontais initialement.
Il serait peut être utile de décrire brièvement à quoi cela va servir pour 'voir' si tu as choisi les bonnes entités, relations, multiplicités (et je te fais grâce des 'attributs') parce qu'in fine, c'est cela qui est important. - W |
|
|
00
|
|
|
#5 |
![]() ![]() |
BOnjour. Pour un MCD, tout semble normal.
Peux-tu expliquer ce qui ne marche pas?
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Bonjour et merci d'avoir pris le temps d'analyser ma base !
Citation:
Mais ce qui ne me plait pas trop c'est les relations des 5 tables à droite : je me demande s'il n'y aurait pas eu plus simple ? Et si ces relations en "boucle" ne vont pas me poser souci à l'avenir ? Mais, d'après vos remarques, je suppose que ce n'est pas le cas ! Chouette ! Citation:
Donc cette base à pour objet d'être un répertoire des projets en lien avec l'énergie sur un territoire (énergies renouvelables (solaire, bois-énergie, éolien, ...), éco-construction, etc...) . A l'heure actuelle, tous les projets sont listés dans de nombreux tableaux excel sans lien, avec redondance d'infos. L'objectif final serait également de pouvoir lier cette base avec le carnet d'adresse de notre structure (Parc naturel régional), et peut-être (si j'y arrive) qu'ils s'auto-alimentent l'un-l'autre, et même de lier cette base projet à notre SIG (Système d'Informations Géographiques) afin d'analyser les projets sur le territoire du Parc. Qu'en pensez-vous ? Merci encore ! Sylvain |
||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : juin 2008 Messages : 2 689 ![]() |
Bonjour,
Tel que décrits { projets, structures }, { projets, personnes }, { personnes, projet } ont des relations many-to-many qu'on peut implémenter comme tu le décrit avec des tables qui font one-to-many entre les deux. Un soucis pourra être le maintien de la cohérence entre les différentes tables. C'est pour cela qu'il serait peut être utile de voir les différentes utilisation projetées pour voir quel en sera l'impact. -W |
|
|
00
|
|
|
#8 | |||
![]() ![]() |
Citation:
Citation:
On voudrait que tu expliques un peu: Citation:
Merci et bonne suite!
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|||
|
00
|
|
|
#9 | |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Quelle rapidité ! Merci encore à vous de vous pencher sur mes interrogations !
![]() Citation:
L'objectif, c'est vraiment de créer une sorte d'annuaire / répertoire de projets variés, et de personnes ressources : Exemples d'utilisations : - lister les projets de Chaudière Bois-énergie d'un territoire donné - lister les entreprises d'écoconstruction - lister les communes lancées dans des démarches d'économie d'énergie - lister les projets de telle collectivité, maître d'ouvrage, ... Vous remarquez donc qu'ici, ce sont surtout des listings, donc la base est une sorte d'annuaire multi-entrées. En allant plus loin, on peut envisager d'essayer de quantifier les économies d'énergies réalisées sur le territoire en faisant des calculs basés sur la réduction des consommations induites, ... Suis-je clair ??? |
|
|
|
00
|
|
|
#10 |
![]() ![]() |
Oui, je crois que là, tu as été suffisamment clair
Les listes que tu veux avoir, tu peux les créer avec des requêtes. En supposant que territoire=commune, etc. À mon avis, à partir ce MCD, tu peux te lancer sur les requêtes et les formulaires. Mais, je vois aussi pointer à l'horizon du VBA pour mieux gérer tes calculs. ![]() Bonne suite!
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|
00
|
|
|
#11 | |
![]() ![]() Inscription : juin 2008 Messages : 2 689 ![]() |
Citation:
projets entreprises communes Les projets c'est en général une maitrise d'oeuvre (commune, collectivités,...) et des maîtres d'ouvrages (les entreprises). Ca donne un truc (plus?) simple: { entreprises } <- many_to_one -> { projet } <- one to one -> { MOA } Ce n'est sans doute pas ce que tu veux, juste pour de montrer qu'il faut essayer de dériver la structure de la BDD en fontion des utilisations. Puis itérer pour affiner. - W |
|
|
|
00
|
|
|
#12 | |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Merci encore !!!
Citation:
Mais bon, puisque vous semblez me dire que je ne ma suis pas trop planté, je vais me lancer dans les requêtes et formulaires sur cette base, et je verrai bien si je rencontre des problèmes !! Merci (encore, encore et encore) à vous pour votre aide ! Sylvain |
|
|
|
00
|
|
|
#13 | |
![]() ![]() |
Citation:
L'utilisation attendue de ta BDD doit guider progressivement ta conception. Pour chacun des cas d'utilisation, tu devras adapter la BDD, et ainsi de suite jusqu'à ce que tout soit ok. Mieux tu sauras ce que tu voudras faire, plus vite tu avanceras dans ta conception.
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() ![]() |
Salut
Je propose de simplifier les tables "structures" et "individus" en une seule tables "personnes" où on mettra des champs pour différencier une personne morale d'une personne physique. Aussi (consequence de la simplification ci-dessus) d'utiliser une seule table projet lier à la table "personnes". Pour ce qui est de la relation individu à structure on utilisera la table fonction où une personne morale sera liée à une structure :id_personne_comme_structure, id_personne_comme_individu, fonction... @+
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
|
00
|
|
|
#15 | |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Citation:
![]() Mais j'ai du mal à voir la relation que tu proposes entre la table "Personnes" et la table "Fonctions". Pourrais-tu me faire un schéma ? La Table "Personnes", même si elle possède des champs distinguant les personnes morales des personnes physiques, n'aura qu'un seul ID_Personne, donc je ne comprend pas ta relation "id_personne_comme_structure, id_personne_comme_individu, fonction" (désolé si ma question peut sembler idiote, mais j'ai vraiment peu d'expérience en bases de données... Merci pour ta participation en tout cas ! Sylvain |
|
|
|
00
|
|
|
#16 |
![]() ![]() |
Je crois comprendre ce que Alassane veut dire.
En attendant que lui-même te repondre, je me permets de te dire ceci: ->Dans ce que tu as donné, les tables Individus et Structures ont les mêmes relations avec la table IndividusStructures. ->Et la relation entre Structures et ProjetsStructures et la même que celle entre Individus et ProjetsIndividus. Donc: ->tu fusionnes les tables Individus et Structures, en une table Personne, puis les tables ProjetsStructures et ProjetsIndividus en une table Projet. -> Et les relations sont alors conservées sur la même logique. J'espère que c'est un peu plus clair.
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Merci et bonjour l'Afrique ! (je viens de voir que vos réponses viennent de Côte d'Ivoire et du Mali !!)
J'ai bien fusionné en effet les tables Individus et Structures en une seule table Personnes. J'ai cependant conservé une table ProjetsPersonnes puisqu'un projet peut être porté par plusieurs personnes, et qu'une personne peut porter plusieurs projets. Ensuite, j'ai bien créé une table fonction, qui fait le lien entre des personnes en tant que structures, et des personnes en tant qu'individus. Cependant, lorsque je fait les relations entre cette table Fonction et la table Personnes, cette dernière est alors "dupliquée" (renommée Personnes_1) dans ma fenêtre de relations. Je suppose que c'est normal et que je ne dois pas m'inquiéter, mais pouvez-vous me le confirmer ? Voici le schéma actuel de la structure de ma base : ![]() Qu'en pensez-vous ? Merci encore !! Sylvain |
|
|
00
|
|
|
#18 |
![]() ![]() |
Bonjour, ouais tu as vu juste.
Concernant tes tables, la fusion que tu as faite est bonne. Seulement, tu n'as pas besoin de deux champs d'id dans la table fonction. Une seule suffit. Ce qui veut dire que tu n'as pas à mettre deux même relations entre les deux tables. Les insertions mêmes ne marcheraient pas. Essaie, et tu me diras que j'ai raison, à moins que tu renseignes chaque fois les deux champs. Une autre fusion que je propose aussi, c'est entre que les tables Projets, ProjetsSensibilation et ProjetsBoisNRJ peuvent faire qu'une seule table qui va comporter tous ses champs. Evite le maximum possible des relations un à un.Elles posent souvent problème pendant les requêtes. Bonne suite!
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 40 ![]() |
Merci Danjos pour ton aide !
Pour ton deuxième conseil (fusionner les tables projets), je suis bien d'accord avec toi sur le fait que ça va simplifier la structure de la base et donc les requêtes futures. Cependant, comme chaque type de projet aura des infos (champs renseignés) spécifiques, j'aurai dans ma table projets de nombreux champs vides, et j'avais cru comprendre que ce n'était pas conseillé... Par contre (et j'en suis désolé !), j'ai du mal à voir comment supprimer un ID dans la table fonction. Car en effet, une personne peut avoir des fonctions différentes dans différentes structures. Exemple : le maire d'une commune peut être président d'une communauté de commune et exercer une activité professionnelle dans une structure. Sinon, j'ai découvert hier que ce type de relation s'appelait une association réflexive ! Il ne me reste plus qu'à essayer de comprendre ce que ça veut dire, et ce que ça entraine !!! Bonne journée ! |
|
|
00
|
|
|
#20 | ||||
![]() ![]() |
Citation:
-> avoir des tables en surplus qui rendent mes requêtes compliquées -> avoir une table avec des champs vide pour certains enregistrements Citation:
Citation:
Citation:
Cela est très différent de ce que tu veux faire. Par exemple, pour une table personne, la relation mariage est une relation reflexive par qu'une personne se marie à une autre personne. Ce qui est nettement différent de ce que tu veux faire.
__________________
Un gros problème est la somme de plusieurs petits problèmes. Resolvez chacun des petits problèmes: vous aurez resolu le gros problème! ![]() Mes tutos || Mon blog || Développeurs ivoiriens |
||||
|
00
|
Copyright © 2000-2012 - www.developpez.com