[Base] Gestion Bibliothèque complexe

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

[Base] Gestion Bibliothèque complexe

Message par wat »


La modération vous a écrit: Sujet déplacé.
Votre titre < Projet d'appli Bibliothèque complexe > a été modifié

Bonjour tout le monde,

J'ai commencé un projet de base de données Bibliothèque à visées éditoriales. Apparemment j'ai besoin d'un modèle plus complexe que ce que j'ai pu trouver en exemple. J'espère que je ne suis pas trop ambitieux :marto:
L'objectif principal est d'avoir une application qui permette une vision détaillée de l'ensemble des nouvelles, articles, critiques et interviews de la collection, avec toutes les informations liées sur les sources, les auteurs, les éditions, les œuvres originales, droits d'auteurs, etc.

Sans connaissances particulières en base de données, j'ai travaillé - durement :shock: - pour implémenter la structure et les relations ci-dessous :

BibliSFTest_relations.gif
Pour la mise en page, j'ai essayé de privilégier la lisibilité des relations entre tables, mais ce n'était pas simple.
Quelques notes sur les termes que j'ai choisi :
- "appareil" concerne tout le hors texte des ouvrages : préfaces, postfaces, index, etc. ;
- "statut" est un indicateur de l'état de saisie des données pour chaque item principal ;
- "ouvrage" est une référence générale aux types de contenants principaux : anthologie, recueil et roman dans la table livres, et périodique, dans la table du même nom ;
- "sujetauteur" et "sujetouvrage" renvoient aux sujets des articles, critiques et interviews contenus dans les ouvrages.
- et "bdess" signifie... bande dessinée ! (trop de risque de confusion avec B[d]D :tesfou: ).
À priori le reste est compréhensible.

Je travaille maintenant sur les formulaires de saisie de données, et par essais et erreurs, je progresse effectivement, mais aussi très lentement. Ça m'aiderais beaucoup d'avoir un regard extérieur "éclairé" sur ce que j'essaie de faire, et peut-être un commentaire sur la structure que j'ai élaboré.

J'espère que ce projet pourra vous intéresser, et merci par avance pour vos lumières !
BibliothèqueSF.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Gestion Bibliothèque complexe

Message par wat »

Bonjour tous,

Si vous avez un commentaire/une appréciation sur la structure et les relations, je suis preneur !

Mais là tout de suite, un problème avec des macros pour commencer :
J'ai utilisé la "simulation" de navigation par onglets proposée dans ce fil et ses développements : [Base] Simuler un formulaire à onglets. J'ai monté mon formulaire et ses onglets/sections, je peux naviguer entre les onglets, mais je butte sur un problème que personne n'a signalé dans le fil en question :

- Lorsque j'ouvre mon formulaire "à onglets", sans agir sur les onglets eux-même dans le formulaire, je peux agir, et il se referme normalement.
- Par contre, quand j'ouvre le formulaire, puis navigue dans les onglets, il est impossible de le refermer, je dois faire un "CTR + Q", le formulaire se ferme, Base me demande confirmation pour quitter sans sauvegarder, j'annule, et me revoilà dans la fenêtre principale de Base...

Une idée sur la cause du problème quelqu'un (et une solution :mrgreen: ) ?

Voici comment produire ce comportement dans la base ci-jointe :
1 - J'ouvre le formulaire "F00Entree" [OK]
2 - Je clique sur le bouton "Recueil", le formulaire "F02Rec" s'ouvre, "F00Entrée" se ferme. [OK]
3 - Si j'agis dans le formulaire sans toucher aux boutons "onglets", pas de problème, comportements attendus, y compris à la fermeture, par les boutons du bas (qui ferment "F02" et rouvrent "F00") ou directement sur la fermeture de fenêtre (du coup pas de réouverture de "F00").
4 - Si je navigue dans les onglets, ça fonctionne, par contre, quand j'essaye de fermer le formulaire, par boutons ou par "fenêtre", c'est impossible, je dois forcer une fermeture du logiciel.
(5 - les autres formulaires sont "en travaux", c'est bien le formulaire "F02Rec"."Recueils" qui me sert à étudier le problème.)

Le problème vient-il de ma base, ou c'est le code proposé dans le fil cité ci-dessus qui n'est pas optimisé ?

Merci d'avance.
PS : J'essaye d'être le plus clair possible dans mes descriptions, si c'est vraiment trop verbeux :oops: , dites-le !
BibliSF_Test01.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 692
Inscription : 20 déc. 2017 14:45

Re: [Base] Gestion Bibliothèque complexe

Message par rollmops »

Bonjour,
wat a écrit : 22 avr. 2024 14:44je peux naviguer entre les onglets
Je ne vois pas d'onglets dans le formulaire que vous donnez
wat a écrit : 22 avr. 2024 14:441 - J'ouvre le formulaire "F00Entree" [OK]
Ce sont juste des boutons qui ouvrent d'autres formulaires.
OpenOffice 4.1.15 - Windows 10
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Gestion Bibliothèque complexe

Message par wat »

Bonjour rollmops,

Merci de vous intéresser à mon problème.

Effectivement, quand j'ai mis "[OK]", c'est que c'est le comportement attendu : il s'agit de boutons qui ouvrent un autre formulaire. OK. Ce sont les étapes par lesquelles je désire accéder à mon formulaire problématique, et elles fonctionnent.

Mon problème est quand j'arrive dans le formulaire "F02Rec".
Effectivement, il ne contient pas réellement d'onglets : comme expliqué dans le fil mentionné "[Base] Simuler un formulaire à onglets", il s'agit au moyen de macros attachées aux "boutons/onglets", d'afficher et de masquer différentes "Sections" du formulaire, pour simuler des onglets.

CaptureF02.PNG

Mon soucis, je le répète, est que lorsque j'actionne ces macros (quand je clique sur les différents "boutons/onglets"), elles fonctionnent, les sections se masquent et s'affichent comme attendu, mais par contre le formulaire bloque, je ne peux plus le fermer, et je suis obligé de quitter OoO Base pour pouvoir fermer cette fenêtre.
A contrario, si je ne touche pas à ces "boutons/onglets", je peux utiliser les autres éléments, et quitter le formulaire normalement.

Il semble donc qu'une fois actionnée, la macro "onglets = afficher/masquer sections" bloque dans une boucle, ou attends une information qui empêche de fermer le formulaire. C'est ici que j'aurais besoin d'un peu d'aide, car je ne connaît pas assez le basic ou le débogage de macros pour comprendre ou ça bloque.

Merci encore de votre attention.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 692
Inscription : 20 déc. 2017 14:45

Re: [Base] Gestion Bibliothèque complexe

Message par rollmops »

Re,
wat a écrit : 30 avr. 2024 21:07 Si je navigue dans les onglets, ça fonctionne, par contre, quand j'essaye de fermer le formulaire, par boutons ou par "fenêtre", c'est impossible, je dois forcer une fermeture du logiciel.
Je ne reproduis pas ce problème avec ma configuration (voir signature).
Le formulaire F02Rec se ferme bien de mon côté.

Mais vous êtes sous Windows 7 qui n'est plus maintenue par Microsoft.

Je n'ai pas été plus loin d'autant que votre fichier est très complexe à étudier (beaucoup de macros).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.15 - Windows 10
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Bibliothèque complexe - Zones combinées (EDIT: abandonnées pour des zones de liste)

Message par wat »

Bonjour

Je n'ai pas trouvé de mentions de problèmes quant à l'utilisation de LibreOffice avec Win 7, ni sur le site officiel, ni par une recherche en ligne. L'utilisation de "Writer" et du tableur n'en posent pas (de problèmes), et je n'ai rien noté de spécifique sur Base (bien que je connaisse moins, effectivement). J'ai peut-être raté quelque chose.

Quoiqu'il en soit, merci pour vos remarques enthousiastes et constructives.

Quoiqu'il en soit donc, n'ayant pas avancé sur ce problème de simulation d'onglets, j'ai modifié ma structure de formulaire, en travaillant maintenant sur le formulaire F01Ant. À présent, le clic sur les "étiquettes d'onglet" renvoie simplement vers la section correspondante du formulaire, sans rien masquer ni afficher. J'ai également ajouté une "barre de navigation", sur la droite.
Les trois macros utilisées dans ce formulaire concernent trois boutons : "Traduction" (ouvre le formulaire F0xTrad), et tout en bas du formulaire "Quitter sans enregistrer" (ferme et rouvre le formulaire F00Entree) et "Sauvegarder et Quitter" (idem) et.
CaptureF01Ant.PNG
Dans ce formulaire F01Ant, donc, je désire implémenter les contrôles qui me permettront d'alimenter mes tables en données.

Je butte sur l'implémentation des deux contrôles de zone combinée intitulés "Éditeur" et "Adresse".
Le formulaire principal (et unique en l'état actuel du document) est basé sur la table "livres", qui contient une clef secondaire issue de la table "editeurs". La table "editeurs" contient les attributs "nom" (nom de l'éditeur) et "adresse" (son adresse).
Résoudre ce problème devrait me permettre de comprendre comment poser le reste des contrôles dont j'ai besoin dans ces formulaires "d'entrée de données".

Comportement attendu :
a) Cas n°1 : l'éditeur est déjà présent dans la liste de la zone combinée "Éditeur" :
- je sélectionne le nom de l'éditeur dans la liste ;
> la zone combinée "Adresse" affiche l'adresse correspondante ;
> à l'enregistrement, la clef ID_ED de l'éditeur s'inscrit dans la table "livres", sous-jacente au formulaire principal.
b) Cas n°2 : l'éditeur n'est pas présent dans la liste de la zone combinée "Éditeur" :
- je renseigne le nom de l'éditeur dans la zone combinée "Éditeur", puis son adresse dans la zone combinée "Adresse" ;
- à l'enregistrement, un nouvel enregistrement est créé dans la table "editeurs", avec les nouvelles données de "nom" et d'"adresse" ;
- et la nouvelle clef ID_ED correspondante est inscrite dans la table "livre".

Comportement observé :
- À l'ouverture du formulaire, les deux zones combinées se présentent comme attendu.
- Je peux sélectionner un éditeur existant, mais la zone combinée "Adresse" ne se met pas à jour.
- Si j'entre de nouvelles données dans chacune des deux zones combinées , à l'enregistrement elles s'inscrivent comme attendu dans la table "editeurs".
- MAIS dans les deux cas de figure, la clef secondaire (= ID_ED) inscrite dans la table "livres" est "0", et lorsque je rouvre mon formulaire F01Ant, ou que je navigue entre les enregistrements au sein du formulaire, quel que soit l'enregistrement, la zone combinée "Éditeur" affiche "0" au lieu du nom de l'éditeur, et la zone "Adresse" affiche la première adresse entrée (entrée correspondant à l'ID_ED "0" d'ailleurs ?).

Je précise :
- que j'ai tenté de mettre les deux zones combinées dans un sous-formulaire lié à la table "editeurs" ou une requête SQL mais que soit ça ne marche pas du tout (rien dans les listes) soit ça n'inscrit aucune donnée dans "livres" ;
- que la zone combiné "Adresse" n'est volontairement PAS déroulante : si le comportement attendu fonctionne, soit elle sera vide car l'éditeur est nouveau (ou n'a pas d'adresse) et on pourra la renseigner, soit l'éditeur sera sélectionné dans la liste "Éditeur", et elle sera renseignée automatiquement.

Je joins la base "Test03" ci après, le formulaire en construction est le F01Ant.

BibliSF_Test03.odb
Un coup de main quelqu'un ? Merci d'avance.

EDIT : Corrections : utilisation de vocabulaire plus spécifique "base de donnée", syntaxe, mise en page.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par wat le 12 mai 2024 15:11, modifié 1 fois.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Gestion Bibliothèque complexe

Message par jeanmimi »

Bonjour,
wat a écrit : 08 mai 2024 23:51 quel que soit l'enregistrement, la zone combinée "Éditeur" affiche "0" au lieu du nom de l'éditeur
C'est plutôt normal par rapport à la Propriété du formulaire de ce contrôle, puisque la Table Source est la Table Livres et que le nom de l'éditeur n'y est pas mentionné. Tes trois autres contrôles ont bien la Table editeurs comme source.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Gestion Bibliothèque complexe

Message par wat »

Bonjour jeanmimi, merci pour le coup de main.

Je te prie de m'excuser, mais je ne comprends pas ta remarque, en particulier ceci :
Tes trois autres contrôles ont bien la Table editeurs comme source.
.

Pour moi :
- Effectivement "Adresse" devrait avoir pour source la table "editeurs", mais ça ne marche pas,
- "Titre" a pour source la table "livres" [OK, ça ça marche :shock: ],
- "Type d'ouvrage" la table "typeouvrage" (de par le code SQL) [OK]
- "Éditeurs" devrait aussi avoir pour source la table "editeurs", de par le code SQL !

C'est là ou je bugge : ma zone de liste "Type d'ouvrage" fonctionne comme attendu, et pas la zone combinée "Éditeur", avec un code SQL exactement symétrique ! :?: :?:

Est-ce que tu suggères qu'il me faut un sous formulaire basé sur la table "editeurs" pour y mettre cette zone combinée "Éditeur" ?
(cela fait deux heures - aujourd'hui - que j'essaye toutes sortes de combinaison dans cet ordre d'idée (sous-formulaire/table/SQL/Requête...) mais je n'arrive à rien :fou: )

Merci
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Gestion Bibliothèque complexe

Message par jeanmimi »

wat a écrit : 09 mai 2024 14:37 Est-ce que tu suggères qu'il me faut un sous formulaire basé sur la table "editeurs" pour y mettre cette zone combinée "Éditeur" ?
Oui, c'est ce que je ferai, mais avec un contrôle Zone de liste où je concatènerai le nom de l'éditeur et son adresse.
Pour saisir un nouvel Éditeur, j'ouvrirai un formulaire affichant la table Éditeurs par clic sur PushButton (dans ce cas-là, la Macro serait la macro Ouverture par Tag) puis un bouton pour sauvegarder ce nouvel enregistrement et fermer le formulaire.
Tu peux tester avec la copie de ton formulaire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Bibliothèque complexe_Zone de liste OK

Message par wat »

Bonjour jmm (et tous), et merci beaucoup d'avoir pris le temps pour me faire un exemple.

En fait il n'était pas fonctionnel (en particulier, le contrôle de liste éditeur était resté basé sur le champ "nom" de la table "editeurs" - c'est à dire sur "rien" en fait -, au lieu d'être basé sur le champ de clef secondaire "id_ed" lié de la table "livres". Malgré cela cela m'a encouragé, et le fait d'étudier ton exemple m'a effectivement permis d'avancer. Merci donc.

Du coup ça ne marchait pas, ça enregistrait des numéros d'ID à la place des noms d'éditeurs que je rentrais, ou rien du tout au bon endroit, les champs ne s'affichaient pas dans la zone, contrairement à la liste "type ouvrage, bref...
Après plusieurs essais, en comparant avec la liste "type ouvrage", j'ai fini par piger.
Du coup j'ai rapatrié les deux boutons du sous-formulaire dans le formulaire principal livre, modifié le bouton "Actualiser" pour "Rafraichir" (il recharge simplement le formulaire, au lieu de passer au suivant), éliminé ce sous-formulaire "editeurs", qui en fait ne sert à rien, et...
... miracle ...
Ça fait ce que ça devrait ! :bravo:

Le point à retenir je pense :
- la zone de liste doit être basée sur le champ de clef secondaire (qui se trouve dans la table sous-jacente au formulaire principal), clef secondaire elle-même liée au champ de clef primaire de la table qui sera source de la liste (lien entre les deux champs de clef à créer au préalable grâce à la la fenêtre "relations des tables" [ Menu "Outils > "Relations" ] je suppose).
> c'est de cette façon que l'action sur la liste modifie le contenu de la table source du formulaire principal, sans que celle-ci ne soit mentionnée dans le code SQL
Corrigez moi si je me trompe ou que j'oublie quelque chose.

Une remarque : je pensais que les zones combinées servaient justement à pouvoir enrichir une liste "à la volée", ce qui évite d'avoir besoin d'un formulaire supplémentaire ? Je m'y pencherais quand le reste sera fini ... :lol:

Ci-joint le résultat fonctionnel en cours (formulaires F01Ant & F05Ed lié) si ça peut servir à d'autres, avant d'avancer sur le suite.

Bonne soirée tous

BibliSF_Test04.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Bibliothèque complexe_Mise à jour

Message par wat »

Bonjour tous,

Ci-joint la dernière version de ma base "bibliothèque".

Le formulaire type d'entrée de données, F01Ant, est achevé, ainsi que ses formulaires secondaires liés :
- F05Aut : entrées "auteurs"
- F05AutCOUV : entrées "illustrateurs"
- F05AutTRAD : entrées "traducteurs"
- F05Ed : entrées "éditeurs"
- F05Trad : entrées "traduction" (traducteur(s)s et infos sur l’œuvre originale)

J'ai pas mal simplifié la structure, en regroupant les tables "articles", "itw", "critiques", "porfolios" et "bd" dans une seule table papiers, avec suppressions des tables "liste" associées, qui étaient inutiles. En fait un champs "id_li" (clef secondaire de table "livres") dans la table "papiers" suffit pour relier chaque enregistrement de "papiers" à l'ouvrage "livre" correspondant (idem avec id_pe - clef de la table "periodiques").

BibliSFTest07_relations.gif

Le bouton "Traduction" à droite de l'onglet "Ouvrage" ouvre - par une macro - le formulaire F05Trad sur l'ID spécifique de l'ouvrage qui est en cours de sélection dans l'onglet ("Ouverture par bouton d'un formulaire sur un enregistrement spécifique"). C'est grâce au travail de Piaf, qui a fourni la macro dans un fil dont j'ai malheureusement perdu la trace, mais une recherche sur les termes fournis dans la parenthèse ci-dessus permet de trouver des exemples.

Le dossier "macro" est nettoyé des différentes choses testées, et ne contient plus - en principe - que les macros utilisées.

Le tout devrait fonctionner correctement, bien que je ne l'ai pas encore testé disons "intégralement". Il y a certainement quelques configurations oubliées à droite-à gauche.

F01Ant concerne les entrées "Anthologies", reste à implémenter sur ce modèle les formulaires d'entrées "Recueils", "Romans" et "Périodiques". Après quoi, j'attaquerais la partie "formulaires de requête" et "rapports".

Par contre il manque encore probablement un système de liste de mots-clefs (mots-clés), à associer aux formulaires "Nouvelles" et "Roman", que je construirais dans un contrôle de table sur le modèle de la liste "Genres" liée au tables "typegenres" et "listegenres". Quand j'aurais intégré 400 ou 500 nouvelles, ça pourra être utile...

Ce que je retiens :
- la base de donnée se construit sur une logique "à rebours" assez contre-intuitive, je trouve que ça aide beaucoup de comprendre cette logique pour construire correctement son modèle.
Je m'explique :
Dans ma vraie bibliothèque, un bouquin "contient" des nouvelles. Intuitivement donc, j'associe à chaque bouquin une liste de titres de nouvelles : en gros, sous l'"id_bouquin", je mets une dizaine d'"id_nouvelles". Si je cherche un bouquin, je trouve les nouvelles.
Pour la base de données, c'est l'inverse : c'est chaque nouvelle qui est associée à un bouquin. Alors que dans ma bibliothèque "physique", sous chaque "id_bouquin" je trouve des "id_nouvelles", la base, elle, met une "id_bouquin" sous chaque "id_nouvelle". Contrairement à moi (qui cherche un bouquin pour trouver des nouvelles), la base cherche dans les tables "nouvelles" l'id d'un bouquin spécifique pour reconstruire la liste des nouvelles associées à un ouvrage. Elle "cherche des nouvelles" pour "trouver un bouquin". :tesfou:

Enfin, ayant tout débrouillé "à la main", il est très probable que j'ai réalisé certaines choses d'une manière plus compliquée que ce qui était réellement nécessaire, si vous en voyez n'hésitez pas à le signaler !

Merci à Piaf pour sa macro, à tous les contributeurs des innombrables fils que j'ai consulté et étudié, et à vous qui avez manifesté un intérêt, même temporaire, pour mon projet.

To be continued
Bonne journée tous

BibliSF_Test07.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Gestion Bibliothèque complexe

Message par jeanmimi »

wat a écrit : 20 mai 2024 11:33 Dans ma vraie bibliothèque, un bouquin "contient" des nouvelles.
Tu peux aussi faire la même chose dans ta base, au lieu d'avoir des tables différentes par type d'ouvrage.
Tu as déjà la table livres avec les champs ID_LI et ID_TO et d'autres champs, tu pourrais avoir une Table pour les détails de l'ouvrage, comme je le vois dans la Table nouvelles qui, dans ce cas, pourrait s'appeler T_DETAIL_OUVRAGE avec les champs qui sont nécessaires, dont un champ ID_LI pour faire la relation. Ainsi, tu simplifierais le nombre de Tables et tu retrouverais ta logique d'accès pour aller du livre vers le détail ou à l'inverse du détail vers le livre dans la recherche par requêtes.
Dans cette version de ta Base, j'ai ajouté une requête et un Rapport.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
wat
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 18 avr. 2024 16:42

Re: [Base] Gestion Bibliothèque complexe

Message par wat »

Hello,

Merci jmm pour le rapport. J'ai regardé ça rapidement... je sens que ça va être encore une courbe d'apprentissage bien raide au début ! :shock:

Concernant ta remarque :
au lieu d'avoir des tables différentes par type d'ouvrage
je ne suis pas sur de piger : il me semble que ce n'est pas le cas, j'ai une table "livres" pour les anthologies/recueils/romans (il manque les essais d'ailleurs, quand j'y pense, voire les dicos et autres "bibliothèques idéales"). J'ai juste séparé les périodiques. Pas sur que ce soit très pertinent effectivement, du point de vue technique. Pour un champ "numéro" qui servirait environ une fois sur 20 s'il était dans la table "livres"..?

Quoi qu'il en soit, je suis d'accord avec toi qu'il est faisable de "simuler" ma logique intuitive qui va "du livre aux nouvelles" (et c'est bien ce à quoi vont servir les rapports je suppose, comme tu le montres).
Cependant, la logique interne de la base (sa "structure") reste celle dont je parlais je crois, et ça me semble importante à comprendre pour construire une base : même dans le modèle que tu suggères, la base ira chercher dans chaque table "DETAILS_OUVRAGE" les id_livres cohérentes pour "reconstruire" l'ouvrage. On a bien un fonctionnement "id_livres" sous "DETAILS_OUVRAGE", plutôt que l'inverse.
Bon, c'est très possible que ce ne soit que mon interprétation de la chose, mais en tous cas ça m'a bien aidé de raisonner comme ça pour comprendre ce que j'avais à faire.

À suivre !
Bonne journée tous
LibreOffice 7.6.6.3 sous Windows 7 64b SP1 RAM 8G
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Gestion Bibliothèque complexe

Message par jeanmimi »

wat a écrit : 21 mai 2024 11:40 la base ira chercher dans chaque table "DETAILS_OUVRAGE" les id_livres cohérentes pour "reconstruire" l'ouvrage
Oui, il y a un peu de ça. Cependant, si tu regardes la requête, la relation s'établit depuis ID_LI de la Table livres vers id_li de la Table nouvelles, comme si la source était livres, ce qui permet d'afficher toutes les nouvelles du livre.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 692
Inscription : 20 déc. 2017 14:45

Re: [Base] Gestion Bibliothèque complexe

Message par rollmops »

Bonjour,
wat a écrit : 21 mai 2024 11:40 j'ai une table "livres" pour les anthologies/recueils/romans (il manque les essais d'ailleurs, quand j'y pense, voire les dicos et autres "bibliothèques idéales"). J'ai juste séparé les périodiques. Pas sur que ce soit très pertinent effectivement, du point de vue technique.
Dans les modèles relationnels pour bibilothèque (norme FRBR), il n'y a qu'une table "oeuvre".
OpenOffice 4.1.15 - Windows 10