[Résolu] Créer un vrai modèle relationnel depuis Calc

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

[Résolu] Créer un vrai modèle relationnel depuis Calc

Message par anatole »


La modération vous a écrit: Sujet déplacé


La modération vous a écrit: Titre modifié pour plus de clarté : "créer un vraie bdd relationnelle depuis Calc"

Bonsoir,
Comme Jeanmimi me l'a conseillé, j'ouvre ici un sujet spécifique après un début dans le forum Base https://forum.openoffice.org/fr/forum/v ... =9&t=64264
Dans Calc... j'avais créé un embryon d’outil pour accompagner des recherches historiques autour de trois feuilles :
- une feuille "sourcesInventaire" : pour recueillir les informations générales, cote par cote, sur des dossiers d'archives
- une feuille "inventairePiècesPériode" : pour recueillir les informations précises sur des pièces contenues dans ces dossiers
- une feuille "aFaire" : pour noter des travaux particuliers à faire sur telle ou telle pièce
plus une feuille où j'avais commencer à créer des listes pour pouvoir utiliser des listes déroulantes dans les 3 feuilles principales.
Comme cela s’est révélé rapidement peu efficace, je suis en train d’essayer... de la transformer en « vraie » base relationnelle dans Base
Je mets un pdf avec en résumé ma configuration en Calc
bdd calc projet base 21 08 02.pdf
et mon projet embryonnaire de configuration en Base et je joins aussi un début de commencement en Base
projet bdd forum 21 08 02.odb
Beaucoup, beaucoup de questions se bousculent dans pauvre tête embrumée de senior mais j’essaye de sérier les priorités :
Pour commencer, je cherche à afficher dans mon formulaire “ inventaireLR1940” (=inventairePiecePeriode) les champs : “pieceSourceLieu” & “pieceCoteConcat” de la table “sourceInvenaire”, pour cela, il faut que :
1. je finalise dans la table “sourceInventaire” la rubrique “pieceCoteConcat” qui doit être la concaténation de :
“sourceCote1” [espace] “sourceCote2” [espace] “sourceCote3” [espace] “sourceCote4” ; sachant que “sourceCote1” et “sourceCote4” peuvent être vides… et je ne sais pas du tout comment procéder
2.je crée la relation adéquate basée sur IDsource et piecesourceID : je n’y arrive pas vraiment : par exemple, quel statut donner à l'ID secondaire...
3. j'ajoute un sous-formulaire dans mon formulaire “ inventaireLR1940” pour l’affichage des deux champs extérieurs : là aussi je bloque.

Dans l'embryon Base que je joins les formulaires" contiennent encore certaines des rubriques issues de l'importation depuis Calc et que je cherche justement à remplacer grâce à l'utilisation de "relations"...
Dans un second temps, je poserai des questions sur des "manip" permettant dans "inventairePiècesPériode", pour :
1 les enregistrements déjà existants (provenant de l'importation depuis Calc),d'automatiser le remplissage du champ "piecesourceID" forcément encore vide
2.les nouveaux enregistrements d’aller dans “sourcesInventaire”,soit copier l'ID une source déjà existante à utiliser, soit créer une nouvelle source, avant de retourner copier son ID dans "inventairePiècesPériode !
Mais chaque chose en son temps !

Merci de l'intérêt que vous porterez à mon projet et merci de vos lumières
Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par anatole le 19 mars 2022 19:43, modifié 2 fois.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25174
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: créer un vraie bdd relationnelle depuis Calc

Message par Dude »

Salut,

Déjà dit, un tableur ne supporte pas de modèle relationnel. Donc, le plus simple est de refaire.
A essayer d'adapter, on perd plus de temps.
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: créer un vraie bdd relationnelle depuis Calc

Message par anatole »

Bonsoir,
déjà dit, un tableur ne supporte pas de modèle relationnel. Donc, le plus simple est de refaire. A essayer d'adapter, on perd plus de temps
: je comprends bien.
Cela dit la première question que j'ai posée
Pour commencer, je cherche à afficher dans mon formulaire “ inventaireLR1940” (=inventairePiecePeriode) les champs : “pieceSourceLieu” & “pieceCoteConcat” de la table “sourceInvenaire”, pour cela, il faut que :
1. je finalise dans la table “sourceInventaire” la rubrique “pieceCoteConcat” qui doit être la concaténation de :
“sourceCote1” [espace] “sourceCote2” [espace] “sourceCote3” [espace] “sourceCote4” ; sachant que “sourceCote1” et “sourceCote4” peuvent être vides… et je ne sais pas du tout comment procéder
2.je crée la relation adéquate basée sur IDsource et piecesourceID : je n’y arrive pas vraiment : par exemple, quel statut donner à l'ID secondaire...
3. j'ajoute un sous-formulaire dans mon formulaire “ inventaireLR1940” pour l’affichage des deux champs extérieurs : là aussi je bloque.
en fait, n'est quasiment pas dans une logique de transformation, mais bien de création d'une bdd relationnelle.
Comme d'ailleurs aussi une partie de la question que j’envisageais de poser dans un second temps :
2.les nouveaux enregistrements d’aller dans “sourcesInventaire”,soit copier l'ID une source déjà existante à utiliser, soit créer une nouvelle source, avant de retourner dans "inventairePiècesPériode copier son ID !
Bonne soirée
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: créer un vraie bdd relationnelle depuis Calc

Message par jeanmimi »

Bonjour,
Lorsqu’un champ est une concaténation de deux champs, on n’est plus stricto senso dans une Table mais dans une Requête, voire dans une Vue d’une requête.
En conséquence, le formulaire ne devrait afficher que les champs des Tables.

Lorsqu’un champ est vide, on peut utiliser COALESCE à la place de CONCAT. Il y a des exemples dans le forum.
Voir ici :
https://forum.openoffice.org/fr/forum/v ... de#p257305
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonsoir,
Je ne sais si je dois ouvrir un autre sujet ou je peux reprendre celui-ci ?? : comme m'y invitait Dude, plutôt que de faire entrer dans Base un fichier Calc, j'ai cogité sur la création ex-nihilo d'une Bdd pour accompagner mes recherches historiques d'amateur. En résumé, je veux pouvoir collecter les informations recueillies à partir de "pièces d'archives". Donc j'ai prévu la création de plusieurs tables (voir l'ébauche dans le pdf où je n'ai pas encore noté pour chaque table, la clé primaire...)
- une table "pièces"
- une table "sources"
- une table "individus"
- une table "institutions"
- une table "fonctions"
- une table "traitement"
- une table "nature des pièces".
Pour la construction de mon projet, dans l'immédiat, j'ai besoin de vos lumières pour
1. valider le découpage entre ces différentes tables
2. créer les liens entre celles-ci.

Ensuite, certainement de questions ponctuelles sur tel ou tel attribut ; par exemple déjà, je sais que j'aurais besoin de vous pour l'attribut "sourceCote" : très problématique pour moi, comme je l'explique dans le pdf et qui est stratégique car il doit permettre un tri des pièces étudiées essentiel dans mes travaux !

Dans un troisième temps, je pense, à nouveau aurai-je besoin de votre aide pour construire des formulaires (?) efficaces à utiliser pour mes dépouillements de pièces d'archives !

Evidemment, je suis disponible pour apporter des informations complémentaires si la présentation de mon projet n'est pas clair et éventuellement ouvrir un nouveau sujet ?

Merci d'avance pour vos avis et conseils
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

Je ne sais si je dois ouvrir un autre sujet ou je peux reprendre celui-ci ??
Comme il y a plusieurs demandes, et que le développement de la Base va demander des ajustements, il serait plutôt souhaitable de déplacer ce fil dans la Section Projets du forum.

Base est bien sûr différent de Calc, il n'y aura pas, par exemple, de commentaires 1, 2 ou 3. Idem pour la Table des Individus. Idem pour la Table des Institutions qui fait double emploi avec la Table des Sources.
La Table des pièces ne devra contenir, comme une carte d'identité, que les éléments qui ne changent pas.
J'ai construit une première ébauche, avec 3 Tables pour illustrer comment on insère dans une Table des Pièces les éléments venant d'autres Tables.
Il manque quelques éléments dans le document pdf pour mieux appréhender le mode opératoire, par exemple, est-ce qu'une pièce peut avoir plusieurs sources ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonjour JeanMimi et merci
"comment on insère dans une Table des Pièces les éléments venant d'autres Tables" ! : c'est exactement ma préoccupation centrale ! Magnifique !

"par exemple, est-ce qu'une pièce peut avoir plusieurs sources" : je me rends compte qu'il faut vraiment bien cogiter AVANT de se lancer ! aujourd'hui, je dirais :
- une pièce a forcément toujours une source et une seule et une source peut référencer une et plus pièce(s),
- une pièce a forcément toujours une cote et une seule et une cote ne peut pas référencer plus d'une pièce,
- une cote a forcément toujours une source et une seule et une source peut référencer plusieurs cotes,

Mais pour l'instant, je plonge attentivement dans votre ébauche et reviens ensuite avec mes questions pour faire le point.
Bonne semaine
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit :je me rends compte qu'il faut vraiment bien cogiter AVANT de se lancer !
C'est en effet utile, car même si Base est assez souple dans sa constitution, c'est toujours un peu plus compliqué de reprendre différemment ce qui avait été conçu initialement de travers.
anatole a écrit :- une pièce a forcément toujours une source et une seule et une source peut référencer une et plus pièce(s),
- une pièce a forcément toujours une cote et une seule et une cote ne peut pas référencer plus d'une pièce,
- une cote a forcément toujours une source et une seule et une source peut référencer plusieurs cotes,
D'accord, donc l'ébauche que j'ai envoyée est cohérente par rapport à cette description.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Merci JeanMimi pour ces éléments;
J'ai continué à cogiter et mets une version "enrichie" de la matrice de mon projet de BDD : j'y ai rajouté une esquisse du schéma des relations entre les tables...

"Table des Institutions qui fait double emploi avec la Table des Sources" : je pensais qu'il fallait en fait bien les séparer : "Sources", une quarantaine d'instances qui sont les structures facilement identifiables qui conservent les archives que je travaille et "Institutions" : un nombre d'instances augmentant en permanence qui sont les structures très variées auxquelles des individus ou des pièces peuvent être reliés ??

J'ai compris que, dans votre ébauche, nous utilisons "la liste déroulante" : par exemple dans le formulaire “saisiePièces” : l’attribut “traitement” est rempli grâce à la liste déroulante donnant le contenu de la table “traitement” ; table dans laquelle de manière indépendante, il est éventuellement ajouté des instances ; mais est-ce que cette fonctionnalité n'est pas réservée pour des renvois à des tables ayant un nombre limité d'instances ??
Et donc que pour les tables ayant un nombre d'instances augmentant continuellement, il vaut mieux passer par les liaisons via clef étrangère ? par exemple l'attribut “pièceIndividu1” de la table "Pièces" soit "rempli" par une "liaison" via individuID qui serait une clef étrangère dans "Pièces" ?

Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit :Et donc que pour les tables ayant un nombre d'instances augmentant continuellement, il vaut mieux passer par les liaisons via clef étrangère ? par exemple l'attribut “pièceIndividu1” de la table "Pièces" soit "rempli" par une "liaison" via individuID qui serait une clef étrangère dans "Pièces" ?
Oui, c'est ça, sauf que dans Base, il n'y a pas Individu 1 ou 2 ou 3, ça c'est un raisonnement de Tableur, avec une colonne par Individu.
A la place, on crée une Table qui va enregistrer les ID des différents individus sélectionnés dans un sous-formulaire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Merci JeanMimi,
Pas facile mais je n'ai pas l'impression de reculer ! J'ai continué à cogiter pour la 1ère étape : définir les tables et leurs relations ; voir mes modestes pdf
bdd projet base tables 22 02 03.pdf
bdd projet base relations 22 02 03.pdf
: est-ce je me rapproche du but ? J'ai encore deux hésitations :
- Pour Sources, je préfère créer une table "Structures" (30taine d'instances) et une "Source" a toujours une et une seule "Structure" ; donc très différent "d'Institutions" (nombre instances illimité) auxquels des Pièces peuvent être rattachées
-Pour Pièces, je dois faire la distinction entre 3 infos (donc 3 attributs ?) : Emetteur, Récepteur et autres Individus : toutes relèvent d'Individus mais, j'ai besoin de les distinguer ...?

J'anticipe et commence à cogiter sur l'étape 2 : créer les formulaires opérationnels : dans le formulaire “saisiePièces”, j’ai cru identifier que pour “individus” il y avait un Contrôle de table /Zone de liste… ?
et sur l'étape 3 : créer de nouvelles instances ... avec le formulaire “saisiePièces”, j'ai créé une nouvelle "Pièce" et essayé d'y ajouter un individu déjà dans la liste déroulante : mais j’ai le un message d’erreur : https://www.cjoint.com/c/LBepIYsYp4X ; et si c'était un nouvel individu, j'imagine qu'il faudrait une fonctionnalité qui permet d’aller le créer dans la table “Individu”, puis de revenir dans le formulaire “saisiePièces” où normalement il figurera désormais dans la liste ...?
Mais pour l'instant, j'ai besoin de finir d'abord la conception de ma base !!
Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par anatole le 04 févr. 2022 15:41, modifié 3 fois.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit : est-ce je me rapproche du but ?
Il est en général suggéré de commencer par construire les Tables et leurs relations entre elles, voire m^me de créer des requêtes pour valider la bonne exécution des relations, avant de créer les formulaires.
Quant au message d'erreur, il vaut mieux utiliser le forum pour le mettre en ligne qu'un hébergeur externe qui n'en garantira pas la pérennité.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonjour
Pour muscler mes compétences en Base, j'ai réalisé l'exemple proposé ! J’ai aussi découvert cette page pleine de ressources :super:

J'ai avancé sur la matrice globale de ma base
bdd projet base relations 22 02 03.pdf
bdd projet base tables 22 02 03.pdf
sur la base de l'ébauche de JeanMimi,
Base_anatole forum 22 02 v2 modif.odb
où j'ai essayé de développer les relations (mais pas encore les formulaires) . Par rapport à l'ébauche de Jean-Mimi :
. une table "Sources", exemple "Rapports préfectoraux" est différente de la table "Institution", exemple "Archives Nationales".
. "Cotes" : j'en ai fait une table spécifique, sachant que "Cote" détermine à la fois des Sources (et une même cote peut déterminer deux "Sources" différentes) et détermine aussi des "Pièces" (et là une "Pièce "ne peut avoir qu'une et une seule "Cote")

1.Globalement, j’aurais eu besoin d’une validation générale sur l’ensemble des Tables créées et les Relations entre elles.
2. Ponctuellement, dans le Formulaire "Saisie Pièces" (en cours d’élaboration), sur deux points, je ne suis pas sûr du tout que les relations puissent permettre d’obtenir l’affichage attendu des informations :
a/ à propos de “Traitement” : j'ai besoin de pouvoir faire cohabiter deux « information » : un 1er traitement, associé à une 1ère date, exemple "Commencé" "10/01/2020" et un 2ème traitement associé à une 2ème date ="A reprendre" "01/02/2022" (et non pas pour une seule date, afficher une liste de traitements successivement enregistrés...)
b/ à propos de “Individu” : il faut pouvoir distinguer trois catégories d’Individus qui doivent rester séparées ; chaque Pièce a :
* forcément un (et un seul) Emetteur,
*o, 1 ou plusieurs Récepteur,
* 0, 1 ou plusieurs Individus associés à cette pièce et dont il est intéressant de noter les noms .

Merci Beaucoup de votre aide dont j'ai bien besoin.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit :a/ à propos de “Traitement” : j'ai besoin de pouvoir faire cohabiter deux « information » : un 1er traitement, associé à une 1ère date, exemple "Commencé" "10/01/2020" et un 2ème traitement associé à une 2ème date ="A reprendre" "01/02/2022" (et non pas pour une seule date, afficher une liste de traitements successivement enregistrés...)
Sur le même principe que le précédent formulaire pour les individus, j'ai créé un formulaire pour les traitements des pièces.
En conséquence, à nouveau, des champs que tu avais mis dans la Table T_Pieces deviennent inutiles.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonjour et Merci JeamMimi pour ta patience !
Je suis toujours centré sur la conception de ma Bdd (que j’ai essayé de simplifier) : la répartition en Tables
bdd projet base tables 22 02 03.pdf
et les Relations entre les Tables
bdd projet base relations 22 02 03.pdf
Base_anatole forum 22 02 v4.odb
- Pour mon souci Individu-Emetteur et Individu-Récepteur, j’ai créé une nouvelle Table Statuts : avec trois instances “Emetteur”, “Recepteur”, “Autres”, table associée à “Individus”… ?
- Pour “Traitement” & “Pieces”, par rapport à V. 3, j’ai modifié ! mon analyse initiale : il s’agit en fait d’une association – si je ne me trompe pas – plusieurs à plusieurs : il sera très intéressant de construire un Formulaire permettant de voir toutes les Pièces associées à un Traitement, par exemple “A reprendre” !

Je bloque sur 2 points…
1. pour les dates d’une Fonction occupée par un individu ou celles d’un Individu dans une Institution : est-ce que les attributs “Date” ne doivent pas être placés dans les tables d’association respectives (comme je l’ai risqué dans ma table d’association PiecesTraitements) et non pas dans la T_Individus ??
2. En ce qui concerne les Relations entre les tables “Fonds”, exemple « Rapports préfectoraux », “Cote”, exemple «H 5 BZ 363 » et “Institution”, exemple « Archives 22 », j’ai du mal à bien l’établir. Car si les 3 tables ont, selon ce que j’ai analysé ?, des relations plusieurs à plusieurs, il est très important de bien établir qu’une même Cote ne peut correspondre qu’à un seul Fonds associé à une même Institution : c’est-à-dire «H 5 BZ 363 » ne peut correspondre qu’au Fonds « Rapports Préfectoraux » associé à « Archives 22 » et uniquement à celui-ci ; sachant que cette même cote «H 5 BZ 363 » peut correspondre à un autre fonds à « Archives 20 » et encore un autre à « Archives 66 ».

Je commence aussi à cogiter sur les Formulaires ! : J’ai bien compris – merci ! - comment faire figurer les Individus dans le Formulaire « Saisie des pièces » mais est-ce possible d’y faire figurer aussi à côté les informations (par exemple “Fonctions”, “Statut”, “ Institution”) données par les tables d’association reliées à la table “Individus” ??

Bon vikend
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit : construire un Formulaire permettant de voir toutes les Pièces associées à un Traitement, par exemple “A reprendre” !
Lorsqu'on veut un affichage des enregistrements sur un critère, il faut créer la requête avec ce critère. Je te laisse créer la requête, après avoir rempli quelques Tables.
anatole a écrit :pour les dates d’une Fonction occupée par un individu ou celles d’un Individu dans une Institution
Ça fonctionne très bien bien si la Date est dans la Table T_IndividusFonctions, idem pour la table T_institutionsIndividus si l'individu change d'institution en changeant de fonction. Par contre si l'individu change d'institution et garde la même fonction ID_Fonction et ID8Institution pourraient être dans la même Table. C'est ce que j'ai fait dans cette modification.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonsoir,
Je travaille toujours sur mon projet de bdd
bdd projet base tables v5.pdf
mais en même temps je muscle mes compétences Base en étudiant des tutos et appliquant leurs exemples quand ils y en a !

1. Par rapport au dernier mail de JeanMimi, j'ai bricolé un formulaire "F_Req_Traitement quelles pièces"
Base forum 22 02 v5.odb
mais je bloque parce que je ne maîtrise ni la fonction "Groupe" ni les sous-formulaires : en effet j'aurais voulu afficher un enregistrement d'un Traitement et pouvoir faire défiler (dans un sous-formulaire, je suppose), toutes les pièces associée à ce traitement, avant de passer au Traitement suivant, et ainsi de suite
2. Ma priorité reste : le Formulaire « Saisie des pièces » : j'ai compris comment y faire figurer les Individus mais je n'arrive pas à rajouter l'affichage d'informations complémentaires sur ces Individus - “Fonctions”, “Statut”, “ Institution” - données par les tables d’association reliées à "T_Individus” ??
3. Quant à la structuration de ma bdd
bdd projet base relations v5.pdf
j'avance par tâtonnements :roll: Mais j'ai un souci statégique à propos de "Cote", "Fonds" & "Structure": il est impératif que dans une Structure, les Cotes des Fonds soient toutes différentes ; par exemple : la cote «H 5 BZ 363 » associée au Fonds « Rapports préfectoraux » dans la Structure « Archives 22 », ne peut être attribuée à aucun autre Fonds dans cette Structure. J'ai bricolé (voir schéma) une ID_Cote comme FK dans une table d'association mais ça ne gère pas cette restriction essentielle à obtenir.

Par rapport au fonctionnement du forum, dois-je fermer ce sujet et retourner dans la section Base poser mes questions une par une ?
Merci et bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit :j'aurais voulu afficher un enregistrement d'un Traitement et pouvoir faire défiler (dans un sous-formulaire, je suppose), toutes les pièces associées à ce traitement, avant de passer au Traitement suivant, et ainsi de suite
Pour afficher, la requête que tu as faite est impeccable. Il reste à construire le formulaire d'affichage, avec la Table T_Traitements en MainForm et la requête Req_Traitement quelles pièces en SubForm.
Ce qui donnera :
Quelles pièces pour quels traitements.png
anatole a écrit :j'ai compris comment y faire figurer les Individus mais je n'arrive pas à rajouter l'affichage d'informations complémentaires sur ces Individus - “Fonctions”, “Statut”, “ Institution”
Le principe est le même, ajouter un sous formulaire. Ici, je l'ai fait pour le détail des fonctions. Tu peux bien sûr masquer l'affichage des colonnes ID, car elles n'ajoutent pas d'informations supplémentaires.
Sous-Formulaires Fonctions.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonsoir Jean-Mimi. Merci pour tes réponses.
J'avance :)
bdd projet base relations v6.pdf
Disons que je n'ai pas le sentiment de reculer. Dans "F_Saisie des pièces", j'ai bricolé quelques formulaires et sous-formulaires
Base forum 22 02 v6.odb
pour obtenir l'affichage des infos que je souhaite : ça a l'air de fonctionner mais sont-ils orthodoxes :?: et en tout cas, je vais avoir un gros travail pour en améliorer la convivialité d'utilisation !

Pour mon objectif d'imposer une "Cote" unique pour l'association des champs "Fonds+Structures", j'ai bricolé :shock: cette instruction Sql (qui semble fonctionner) "

Code : Tout sélectionner

CREATE UNIQUE INDEX "Index_StructureFondsCote" ON "T_StructuresFonds" ("FK_ID_Structure" ASC, "FK_ID_Fonds" ASC,"FK_ID_Cote" ASC);

Ma question (probablement maladroite) : dans Base est-il possible de contrôler toutes les instructions Sql déjà entrées :?: et si je veux annuler celle-ci, par exemple, vais-je devoir obligatoirement écrire une instruction de "destruction" :?:

Au point où j'en suis, est-il mieux de fermer ce sujet et d'en ouvrir sur des questions ponctuelles dans le forum "Base" ?

Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par jeanmimi »

anatole a écrit :Au point où j'en suis, est-il mieux de fermer ce sujet et d'en ouvrir sur des questions ponctuelles dans le forum "Base" ?
Ce sujet peut continuer dans la Section Projets, car cela permet de poser plusieurs questions dans la même suite de messages.
Il est possible, tout en laissant ce sujet dans la Section Projets, de poser une question sur un point particulier dans une des autres Sections du Forum, ce qui peut augmenter le nombre de répondeurs potentiels.
Dans Base est-il possible de contrôler toutes les instructions SQL déjà entrées
Ces instructions servent à créer ou modifier des Tables ou des Requêtes qui peuvent être modifiées en les éditant. C'est donc assez facile de revenir sur une structure qui ne convient plus ou pas.
mais sont-ils orthodoxes
La structure du formulaire avec ses sous-formulaires semble tout à fait correcte. Je suggère pour une cohérence visuelle de modifier les colonnes ID des sous-formulaires, car actuellement elles affichent 2 décimales et pourraient en afficher aucune.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Merci JeanMimi pour ces réponses

Effectivement, j'ai vu que "Ebauche d'index" me permet de gérer l'index que j'ai créé en SQL dans la "T_Fonds+Structures" comme solution - est-elle techniquement satisfaisante ?? - pour obtenir que plusieurs Fonds dans une même Structure n'aient jamais la même Cote.
OK, je vérifie les colonnes ID des sous-formulaires :super: : de toutes les façons, j'ai un gros travail pour améliorer la praticité et la convivialité de tous les formulaires créés et à créer !

Petite question : il me semble - mais je ne suis pas du tout sûr de moi - avoir vu en parcourant le forum et ses conseils pour la structuration d'une bdd qu'il était possible de créer des requêtes ?? qui permettait de valider l'ébauche d'une bdd... Est-ce que tu vois de quoi il peut s'agir ou ai-je rêvé :marto:
Bonne semaine
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !
Avatar de l’utilisateur
anatole
Membre hOOnoraire
Membre hOOnoraire
Messages : 128
Inscription : 30 oct. 2010 16:54

Re: [Base]Créer un vrai modèle relationnel depuis Calc

Message par anatole »

Bonsoir,
Je reviens ici pour fermer le sujet ! et te remercier JeanMimi :super:
Je me suis lancé et ai créé un premier proto de ma Bdd pour mes recherches historiques... il est loin d'être orthodoxe mais mon bricolage semble fonctionner :shock:
Maintenant je vais ouvrir un (ou des) sujet(s) dans le forum Macros car je dois gérer l'intégration de données antérieures à la création de cette Bdd :roll:

Encore merci
Bon vikend
Papy-geek... Windows 10 Famille 22H2 build 19045.3570 - pack 1000.19052.1000.0 {64bits} LibreOffice 7.5.7.1.- Huawei MateStation S Ryzen 5 4600G Radeon Graphics 3.70GHz RAM 8G0 - 2 ... l'Aventure continue !