This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--76bDiC5SSCcwRi379BxqLAED9LLvMWeEO
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Bonjour,
Si vous trouvez un meilleur titre mettez-le.
Voici mon soucis:
Gestion d'une biblioth=E8que
Certains ouvrages comportent plusieurs auteurs
J'ai cr=E9e une table sp=E9cifique pour les auteurs
Dans la table principale que me conseillez-vous de faire et pourquoi?
1) Un seul champ auteur avec s=E9paration par des virgules (ou autres (et=
pourquoi))
2) Autant de champs auteurs que n=E9cessaire (en changeant le nom bien s=FB=
r)
Dans le cas 1 comment proc=E9deriez-vous pour interroger la base sachant
que je dois pouvoir afficher selon la demande
a) un auteur avec TOUS les ouvrages o=F9 il est participant
b) un ouvrage avec TOUS les auteurs concern=E9s
Vos r=E9ponses me seront utiles pour d'autres champs qui sont aussi dans
ce cas de figure mais que j'ai trait=E9 avec une valeur g=E9n=E9rique peu=
satisfaisante =E0 mon g=F4ut.
Merci de mettre des exemples comment=E9s car je m'essaye aux jointures et=
c'est plut=F4t neuf pour moi.
Amiti=E9s
--=20
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son n=E9cessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Denis Beauregard
Le Wed, 10 Sep 2014 15:11:24 +0200, Yannick VOYEAUD écrivait dans fr.comp.lang.php:
Bonjour,
Si vous trouvez un meilleur titre mettez-le.
Catalogue de livres ? et pour le groupe sur les bases de données peut-être ?
Voici mon soucis: Gestion d'une bibliothèque Certains ouvrages comportent plusieurs auteurs
J'ai crée une table spécifique pour les auteurs Dans la table principale que me conseillez-vous de faire et pourquoi? 1) Un seul champ auteur avec séparation par des virgules (ou autres (et pourquoi)) 2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
2 questions :
D'abord, y a-t-il intérêt à rechercher 2 auteurs en même temps ? Je dirais que non.
Ensuite, y a-t-il des auteurs homonymes ? Dans le catalogue d'une bibliothèque nationale, on peut trouver des auteurs homonymes et il y a parfois la date de naissance ou de décès pour les distinguer.
Je ferais 3 tables : auteurs, livres et auteurs_livres, chaque auteur et livre ayant un numéro de référence. Les auteurs peuvent avoir une année de naissance et de décès, mais aussi d'autres informations comme le courriel, la région, etc. À partir d'une recherche par auteur, on pourrait alors montrer les livres de chacun.
L'inconvénient à une seule table, à mon avis, c'est que si on recherche un auteur avec un nom partiel et un prénom partiel, on pourrait avoir trop de faux résultats. Par exemple, je recherche un Jean Martin, et je trouve une fiche avec Jean Dupont; Pierre Martin.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant que je dois pouvoir afficher selon la demande a) un auteur avec TOUS les ouvrages où il est participant b) un ouvrage avec TOUS les auteurs concernés
Il y a des ouvrages collectifs. Un directeur de publication et par exemple 10 ou 20 auteurs d'articles. Cela devient lourd à gérer si on veut isoler ensuite les oeuvres d'un auteur.
Vos réponses me seront utiles pour d'autres champs qui sont aussi dans ce cas de figure mais que j'ai traité avec une valeur générique peu satisfaisante à mon gôut.
Merci de mettre des exemples commentés car je m'essaye aux jointures et c'est plutôt neuf pour moi.
Je regarderais quelques bibliothèques en ligne. J'aime bien le catalogue Iris de la BAnq, http://iris.banq.qc.ca/iris.aspx puis recherche avancée.
En saisissant mon nom, je trouve des homonymes nés en 1943 et 1958. En cliquant sur un livre au hasard puis sur l'auteur, je trouve les autres avec le même auteur, donc sans les homonymes.
Denis
Le Wed, 10 Sep 2014 15:11:24 +0200, Yannick VOYEAUD
<yannig@voyeaud.org> écrivait dans fr.comp.lang.php:
Bonjour,
Si vous trouvez un meilleur titre mettez-le.
Catalogue de livres ?
et pour le groupe sur les bases de données peut-être ?
Voici mon soucis:
Gestion d'une bibliothèque
Certains ouvrages comportent plusieurs auteurs
J'ai crée une table spécifique pour les auteurs
Dans la table principale que me conseillez-vous de faire et pourquoi?
1) Un seul champ auteur avec séparation par des virgules (ou autres (et
pourquoi))
2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
2 questions :
D'abord, y a-t-il intérêt à rechercher 2 auteurs en même temps ?
Je dirais que non.
Ensuite, y a-t-il des auteurs homonymes ? Dans le catalogue d'une
bibliothèque nationale, on peut trouver des auteurs homonymes et il y
a parfois la date de naissance ou de décès pour les distinguer.
Je ferais 3 tables : auteurs, livres et auteurs_livres, chaque
auteur et livre ayant un numéro de référence. Les auteurs peuvent
avoir une année de naissance et de décès, mais aussi d'autres
informations comme le courriel, la région, etc. À partir d'une
recherche par auteur, on pourrait alors montrer les livres de
chacun.
L'inconvénient à une seule table, à mon avis, c'est que si on
recherche un auteur avec un nom partiel et un prénom partiel,
on pourrait avoir trop de faux résultats. Par exemple, je recherche
un Jean Martin, et je trouve une fiche avec Jean Dupont; Pierre
Martin.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant
que je dois pouvoir afficher selon la demande
a) un auteur avec TOUS les ouvrages où il est participant
b) un ouvrage avec TOUS les auteurs concernés
Il y a des ouvrages collectifs. Un directeur de publication et
par exemple 10 ou 20 auteurs d'articles. Cela devient lourd à
gérer si on veut isoler ensuite les oeuvres d'un auteur.
Vos réponses me seront utiles pour d'autres champs qui sont aussi dans
ce cas de figure mais que j'ai traité avec une valeur générique peu
satisfaisante à mon gôut.
Merci de mettre des exemples commentés car je m'essaye aux jointures et
c'est plutôt neuf pour moi.
Je regarderais quelques bibliothèques en ligne. J'aime bien le
catalogue Iris de la BAnq, http://iris.banq.qc.ca/iris.aspx puis
recherche avancée.
En saisissant mon nom, je trouve des homonymes nés en 1943 et 1958.
En cliquant sur un livre au hasard puis sur l'auteur, je trouve
les autres avec le même auteur, donc sans les homonymes.
Le Wed, 10 Sep 2014 15:11:24 +0200, Yannick VOYEAUD écrivait dans fr.comp.lang.php:
Bonjour,
Si vous trouvez un meilleur titre mettez-le.
Catalogue de livres ? et pour le groupe sur les bases de données peut-être ?
Voici mon soucis: Gestion d'une bibliothèque Certains ouvrages comportent plusieurs auteurs
J'ai crée une table spécifique pour les auteurs Dans la table principale que me conseillez-vous de faire et pourquoi? 1) Un seul champ auteur avec séparation par des virgules (ou autres (et pourquoi)) 2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
2 questions :
D'abord, y a-t-il intérêt à rechercher 2 auteurs en même temps ? Je dirais que non.
Ensuite, y a-t-il des auteurs homonymes ? Dans le catalogue d'une bibliothèque nationale, on peut trouver des auteurs homonymes et il y a parfois la date de naissance ou de décès pour les distinguer.
Je ferais 3 tables : auteurs, livres et auteurs_livres, chaque auteur et livre ayant un numéro de référence. Les auteurs peuvent avoir une année de naissance et de décès, mais aussi d'autres informations comme le courriel, la région, etc. À partir d'une recherche par auteur, on pourrait alors montrer les livres de chacun.
L'inconvénient à une seule table, à mon avis, c'est que si on recherche un auteur avec un nom partiel et un prénom partiel, on pourrait avoir trop de faux résultats. Par exemple, je recherche un Jean Martin, et je trouve une fiche avec Jean Dupont; Pierre Martin.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant que je dois pouvoir afficher selon la demande a) un auteur avec TOUS les ouvrages où il est participant b) un ouvrage avec TOUS les auteurs concernés
Il y a des ouvrages collectifs. Un directeur de publication et par exemple 10 ou 20 auteurs d'articles. Cela devient lourd à gérer si on veut isoler ensuite les oeuvres d'un auteur.
Vos réponses me seront utiles pour d'autres champs qui sont aussi dans ce cas de figure mais que j'ai traité avec une valeur générique peu satisfaisante à mon gôut.
Merci de mettre des exemples commentés car je m'essaye aux jointures et c'est plutôt neuf pour moi.
Je regarderais quelques bibliothèques en ligne. J'aime bien le catalogue Iris de la BAnq, http://iris.banq.qc.ca/iris.aspx puis recherche avancée.
En saisissant mon nom, je trouve des homonymes nés en 1943 et 1958. En cliquant sur un livre au hasard puis sur l'auteur, je trouve les autres avec le même auteur, donc sans les homonymes.
Pour moi, il s'agit plus d'un problème de modélisation d'une structure de bases de données que de PHP, qui aurait plus eu sa place dans le groupe consacré aux SGBD, mais bon.
Voici comment je procéderais avec MySQL, sachant qu'il y a à peu près autant de solutions que de développeurs, et d'autres moteurs de gestion de bases de données :
Gestion d'une bibliothèque Certains ouvrages comportent plusieurs auteurs J'ai crée une table spécifique pour les auteurs
Dans la table principale que me conseillez-vous de faire et pourquoi? 1) Un seul champ auteur avec séparation par des virgules (ou autres (et pourquoi))
Un champ comportant les informations délimitées par un séparateur, pourquoi pas, ça permet d'avoir un nombre d'auteurs variable ; mais c'est pénible ensuite en termes de traitement et d'interrogation.
2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
Dans ce cas, tu t'imposes un nombre fini d'auteurs, disons 5, ce qui a deux inconvénients :
- dans la plupart des cas, il n'y en a qu'un, donc tu vas trimballer inutilement des variables vides ; - si par malheur tu as 6 auteurs, ça coince.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant
Je ne procèderai pas parce que c'est le bronx :)
Je créerais 3 tables :
- une table des ouvrages ; - une table des auteurs ; - une table de liaison ouvrages/auteurs.
- Table des auteurs : auteurs
aut_id : identifiant unique (éventuellement l'auto-incrément) aut_nom : le nom de l'auteur aut_prenom : le prénom de l'auteur etc.
- Table des ouvrages : ouvrages
ouv_id : indentifiant unique (éventuellement l'auto-incrément) ova_id : identifiant unique de l'ouvrage dans la table de liaison ouv_titre : le titre de l'ouvrage ouv_categorie : sa catégorie ouv_resume : un bref descriptif etc.
- Table de liaison : ouvrages_auteurs
ova_id : identifiant unique (éventuellement l'auto-incrément) ova_ouv_id : (=ouv_id) identifiant de l'ouvrage ova_aut_id : (=aut_id) identifiant de l'auteur
que je dois pouvoir afficher selon la demande a) un auteur avec TOUS les ouvrages où il est participant
-> Interrogation de la table des auteurs -> récupération de son identifiant unique -> interrogation de la table de liaison -> recherche de toutes les occurrences de l'identifiant unique de l'auteur -> Pour chaque occurrence, lecture de la table des ouvrages et affichage de l'ouvrage.
b) un ouvrage avec TOUS les auteurs concernés
-> Interrogation de la table des ouvrages -> récupération de son identifiant unique -> interrogation de la table de liaison -> recherche de toutes les occurrences de l'identifiant unique de l'ouvrage -> Pour chaque occurrence, lecture de la table des auteurs et affichage de l'auteur.
Merci de mettre des exemples commentés car je m'essaye aux jointures et c'est plutôt neuf pour moi.
Tu as la logique, si elle te convient, il ne te reste plus qu'à coder :)
Pour moi, il s'agit plus d'un problème de modélisation d'une structure
de bases de données que de PHP, qui aurait plus eu sa place dans le
groupe consacré aux SGBD, mais bon.
Voici comment je procéderais avec MySQL, sachant qu'il y a à peu près
autant de solutions que de développeurs, et d'autres moteurs de gestion
de bases de données :
Gestion d'une bibliothèque
Certains ouvrages comportent plusieurs auteurs
J'ai crée une table spécifique pour les auteurs
Dans la table principale que me conseillez-vous de faire et pourquoi?
1) Un seul champ auteur avec séparation par des virgules (ou autres (et
pourquoi))
Un champ comportant les informations délimitées par un séparateur,
pourquoi pas, ça permet d'avoir un nombre d'auteurs variable ; mais
c'est pénible ensuite en termes de traitement et d'interrogation.
2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
Dans ce cas, tu t'imposes un nombre fini d'auteurs, disons 5, ce qui a
deux inconvénients :
- dans la plupart des cas, il n'y en a qu'un, donc tu vas trimballer
inutilement des variables vides ;
- si par malheur tu as 6 auteurs, ça coince.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant
Je ne procèderai pas parce que c'est le bronx :)
Je créerais 3 tables :
- une table des ouvrages ;
- une table des auteurs ;
- une table de liaison ouvrages/auteurs.
- Table des auteurs : auteurs
aut_id : identifiant unique (éventuellement l'auto-incrément)
aut_nom : le nom de l'auteur
aut_prenom : le prénom de l'auteur
etc.
- Table des ouvrages : ouvrages
ouv_id : indentifiant unique (éventuellement l'auto-incrément)
ova_id : identifiant unique de l'ouvrage dans la table de
liaison
ouv_titre : le titre de l'ouvrage
ouv_categorie : sa catégorie
ouv_resume : un bref descriptif
etc.
- Table de liaison : ouvrages_auteurs
ova_id : identifiant unique (éventuellement l'auto-incrément)
ova_ouv_id : (=ouv_id) identifiant de l'ouvrage
ova_aut_id : (=aut_id) identifiant de l'auteur
que je dois pouvoir afficher selon la demande
a) un auteur avec TOUS les ouvrages où il est participant
-> Interrogation de la table des auteurs
-> récupération de son identifiant unique
-> interrogation de la table de liaison
-> recherche de toutes les occurrences de l'identifiant unique de
l'auteur
-> Pour chaque occurrence, lecture de la table des ouvrages et
affichage de l'ouvrage.
b) un ouvrage avec TOUS les auteurs concernés
-> Interrogation de la table des ouvrages
-> récupération de son identifiant unique
-> interrogation de la table de liaison
-> recherche de toutes les occurrences de l'identifiant unique de
l'ouvrage
-> Pour chaque occurrence, lecture de la table des auteurs et
affichage de l'auteur.
Merci de mettre des exemples commentés car je m'essaye aux jointures et
c'est plutôt neuf pour moi.
Tu as la logique, si elle te convient, il ne te reste plus qu'à coder :)
Pour moi, il s'agit plus d'un problème de modélisation d'une structure de bases de données que de PHP, qui aurait plus eu sa place dans le groupe consacré aux SGBD, mais bon.
Voici comment je procéderais avec MySQL, sachant qu'il y a à peu près autant de solutions que de développeurs, et d'autres moteurs de gestion de bases de données :
Gestion d'une bibliothèque Certains ouvrages comportent plusieurs auteurs J'ai crée une table spécifique pour les auteurs
Dans la table principale que me conseillez-vous de faire et pourquoi? 1) Un seul champ auteur avec séparation par des virgules (ou autres (et pourquoi))
Un champ comportant les informations délimitées par un séparateur, pourquoi pas, ça permet d'avoir un nombre d'auteurs variable ; mais c'est pénible ensuite en termes de traitement et d'interrogation.
2) Autant de champs auteurs que nécessaire (en changeant le nom bien sûr)
Dans ce cas, tu t'imposes un nombre fini d'auteurs, disons 5, ce qui a deux inconvénients :
- dans la plupart des cas, il n'y en a qu'un, donc tu vas trimballer inutilement des variables vides ; - si par malheur tu as 6 auteurs, ça coince.
Dans le cas 1 comment procéderiez-vous pour interroger la base sachant
Je ne procèderai pas parce que c'est le bronx :)
Je créerais 3 tables :
- une table des ouvrages ; - une table des auteurs ; - une table de liaison ouvrages/auteurs.
- Table des auteurs : auteurs
aut_id : identifiant unique (éventuellement l'auto-incrément) aut_nom : le nom de l'auteur aut_prenom : le prénom de l'auteur etc.
- Table des ouvrages : ouvrages
ouv_id : indentifiant unique (éventuellement l'auto-incrément) ova_id : identifiant unique de l'ouvrage dans la table de liaison ouv_titre : le titre de l'ouvrage ouv_categorie : sa catégorie ouv_resume : un bref descriptif etc.
- Table de liaison : ouvrages_auteurs
ova_id : identifiant unique (éventuellement l'auto-incrément) ova_ouv_id : (=ouv_id) identifiant de l'ouvrage ova_aut_id : (=aut_id) identifiant de l'auteur
que je dois pouvoir afficher selon la demande a) un auteur avec TOUS les ouvrages où il est participant
-> Interrogation de la table des auteurs -> récupération de son identifiant unique -> interrogation de la table de liaison -> recherche de toutes les occurrences de l'identifiant unique de l'auteur -> Pour chaque occurrence, lecture de la table des ouvrages et affichage de l'ouvrage.
b) un ouvrage avec TOUS les auteurs concernés
-> Interrogation de la table des ouvrages -> récupération de son identifiant unique -> interrogation de la table de liaison -> recherche de toutes les occurrences de l'identifiant unique de l'ouvrage -> Pour chaque occurrence, lecture de la table des auteurs et affichage de l'auteur.
Merci de mettre des exemples commentés car je m'essaye aux jointures et c'est plutôt neuf pour moi.
Tu as la logique, si elle te convient, il ne te reste plus qu'à coder :)