Bonsoir à tous !
Tout d'abord j'espère que mon post se situe dans la bonne catégorie ; j'ai hésité entre celle-ci et la partie "Schéma" donc si un modérateur passe par là et juge bon de déplacer ce sujet c'est avec plaisir.
Pour un exercice je suis chargé de mettre en place une base de données assez simple concernant des points d'observation d'oiseaux. Je ne pensais pas rencontrer de problème mais tout débutant que je suis je me heurte à un souci inattendu (quoique prévisible à bien y penser). Voici d'abord les relations de ma BD à ce jour :
Quelques explications :
- La table Tobs regroupe des informations sur les points d'observation des oiseaux : les coordonnées (Xobs et Yobs), le code INSEE de la commune d'observation (INSEEobs) et l'identifiant de la personne ayant réalisé l'observation (IDpers).
- La table Tesp concerne les espèces observées avec leur nom vernaculaire (NomVer) et leur nom scientifique (NomSci). Entre ces deux tables une table Tinter car une observation peut concerner plusieurs espèces et vice-versa.
- La table Tpers regroupe les informations sur les observateurs : leur nom et prénom et leur commune de résidence (INSEEres).
- La table Tcom regroupe des informations sur les communes : le nom, l'air, les coordonnées de la mairie (Xmair et Ymair).
- Les tables Tdpt et Tfam ne concerne pas mon problème à priori.
Comme vous pouvez le voir il existe une sorte de "triangle relationnel" entre Tobs, Tcom et Tpers : l'observation a lieu dans une commune (relation Tobs-Tcom) par une personne (relation Tobs-Tpers) et chaque personne réside dans une commune (relation Tpers-Tcom). Cela pose des problèmes au moment des requêtes, par exemple si je veux avoir la liste des espèces observées, par quelle personne et la commune d'observation... puisqu'en demandant le nom de la commune je ne peux pas faire la distinction entre commune d'observation et commune de résidence. Je n'en obtiens donc que les observations faites par une personne dans la même commune que celle où il réside ce qui ne me convient pas vraiment.
Je vois bien qu'il y a un souci dans la conception de ma base mais je ne parviens pas à mettre le doigt dessus tout en évitant une redondance d'informations : dois-je créer deux tables commune, une pour les communes d'observation et de résidence ? Mais dans ce cas elles contiendront les mêmes informations...
J'avais supposé déplacer INSEEobs dans la table Tinter mais à priori j'aurai toujours le même problème.
Voilà pour la situation générale. Il s'agit probablement d'un problème basique (c'est le cas de le dire) évident mais étant totalement débutant dans la mise en place de bases de données j'avoue ne pas m'en sortir et ne pas avoir le déclic. Quelqu'un pourra peut-être éclairer ma lanterne et pointer du doigt mes erreurs.
En remerciant par avance ceux qui prendront de leur temps pour m'aider à démêler ma base... N'hésitez pas si je n'ai pas été assez clair et si vous avec besoin de plus d'informations !
Bonne soirée à tous !
Partager