IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Modélisation d'une BdD séries TV


Sujet :

Schéma

  1. #61
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour les matinaux,

    Citation Envoyé par Neelix
    Nous y voici. C'est exactement ce que je cherchais.
    Ouf !
    Bonne route, en souhaitant que ça se passera du mieux possible.

    Citation Envoyé par escartefigue
    Il est préférable de coder UNION ALL plutôt que UNION.
    Ça c’est de la tambouille purement SQL. Il est clair que pour ma part je tiens à rester le plus possible dans les clous du Modèle Relationnel de Données, et dans le cas du Sorry Query Language, n’en sortir que lorsque ce dernier ne me permet pas de faire autrement.

    Pour faire du vrai relationnel, voir du côté de Rel, de Dave Voorhis (Rel est basé sur Tutorial D, cf. Database Explorations de Date et Darwen, et dont le chapitre 11 traite de Tutorial D que j’évoque chez DVP.

    Quelques exemples d’utilisation de Tutorial D chez DVP :

    Bases de données relationnelles et normalisation


    https://www.developpez.net/forums/d1...e/#post8445131

    https://www.developpez.net/forums/d1.../#post11122860

    https://www.developpez.net/forums/d2.../#post11623536

    https://www.developpez.net/forums/d9...a/#post7413545

    https://www.developpez.net/forums/d1...n/#post7529838

    https://www.developpez.net/forums/d1...s/#post7494654

    https://www.developpez.net/forums/d1...e/#post7532970

    https://www.developpez.net/forums/d1...k/#post7398771

    https://www.developpez.net/forums/d1...n/#post7388229

    https://www.developpez.net/forums/d1...s/#post6859822

    Etc. !
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  2. #62
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Bonsoir,

    D'accord avec vous François. Je n'aime pas trop m'écarter des clous non-plus.

    Par-contre, mes amis, j'ai parlé un peu trop vite. Je me retrouve devant un autre problème.

    Un acteur peu jouer le même rôle dans plusieurs périodes différentes d'une même série, du coup,
    impossible de peupler la table CASTING.

    Je m'explique. Je me retrouve avec une série dans laquelle, deux des acteurs de la première période reprennent leurs rôles
    respectifs dans la deuxième période.
    Je ne peux pas entrer deux fois le même acteur avec le même rôle dans une même série.

    Nom : Capture.PNG
Affichages : 119
Taille : 186,4 Ko

    Un acteur peut avoir interprété deux fois le même rôle dans une même série au cours de deux périodes différentes.
    Un acteur peut avoir interprété le même rôle dans plusieurs séries.
    Un acteur peut avoir interprété plusieurs rôles dans une même série.
    Un personnage peut avoir été interprété par plusieurs acteurs différents.
    Toutes les séries ne comportent pas de périodes.

    Je joins également mon code SQL qui était sensé être définitif.
    Fichiers attachés Fichiers attachés

  3. #63
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir Neelix,

    Je regarderai ça de plus près, mais dans votre table CASTING il y a une contrainte selon laquelle un acteur ne peut apparaître que dans une seule série :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
       UNIQUE(seriesId, personId)

    Il faudrait déjà supprimer cette contrainte…
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  4. #64
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    J'ai trouvé une solution, qu'en pensez-vous ?

    Ci-joint mon nouveau MCD et le script SQL associé.



    Nom : TV_Series_Reviewed.jpg
Affichages : 115
Taille : 122,5 Ko
    Fichiers attachés Fichiers attachés

  5. #65
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir Neelix,

    Je ne vous oublie pas, mais je suis bien occupé par ailleurs...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  6. #66
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir Neelix,

    De CASTING, vous avez fait une entité-type identifiée relativement à SERIES, PERSON et CHAR_PLAYED, d’où une clé primaire {castingId, seriesId, personId, characterId}.

    En fait, le triplet {seriesId, personId, appearanceOrder} suffit pour identifier CASTING. On met donc en oeuvre une CIF pour évacuer characterId de la nouvelle clé (cf. post #23, mais cette fois-ci c’est CHAR_PLAYED qui est la cible).

    MCD correspondant :





    Par ailleurs, {seriesId, personId, periode} doit être clé alternative pour CASTING.
    Pour suivre la méthode paprickienne (cf. post #24), à cet effet, dans Looping, on choisit "Oui" pour la propriété "Proposer index composé" (cf. groupe MLD - SQL).
    Dans la fenêtre de de la rubrique période de CASTING, on coche la case UNIQUE et on fournit un nom d'index, disons "x1".
    On clique sur la patte 1,n de SERIES, on y coche la case "Clé étrangère dans index" et on ajoute en dessous le nom de l'index : "x1".
    On clique sur la patte 0,n de PERSON, et on procède de la même façon.

    Au résultat :


    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE CASTING
    (  seriesId INT
     , personId INT
     , characterId INT NOT NULL
     , appearanceOrder TINYINT NOT NULL
     , periode VARCHAR(9) NOT NULL
     , CONSTRAINT CASTING_PK PRIMARY KEY(seriesId, personId, appearanceOrder) 
     , CONSTRAINT CASTING_AK UNIQUE(seriesId, personId, periode)     
     , CONSTRAINT CASTING_SERIES_FK FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId)
     , CONSTRAINT CASTING_PERSON_FK FOREIGN KEY(personId) REFERENCES PERSON(personId)
     , CONSTRAINT CASTING_CHARACTER_FK FOREIGN KEY(characterId) REFERENCES CHAR_PLAYED(characterId) ;

    Remarque concernant l’attribut appearanceOrder.

    Référence : l’affiche figurant dans le post #39.

    Dans The Avengers, années 1962-1964, Paul Whitsun-Jones et Patrick Newell tiennent successivement le rôle du supérieur de John Steed. Dans la mesure où, par exemple, l’on sait que le premier à tenir le rôle fut Paul (1963), et le deuxième fut Patrick, mais parce qu’on ne sait pas lequel des deux tint le rôle en 1963, d’accord pour mettre en oeuvre l’attribut appearanceOrder.

    Comme par ailleurs en 1961 le rôle fut tenu par Arthur Hewlett, pour celui-ci appearanceOrder prendra la valeur 1, tandis que pour son premier successeur, appearanceOrder prendra la valeur 2, et pour son deuxième successeur, appearanceOrder prendra la valeur 3.

    Prédicat :

    Dans la série S, au cours de la période Y, le rôle C fut tenu par l’acteur P selon l’ordre d’apparition N.

    Instances :

    Dans la série The Avengers, période 1961, le rôle du supérieur de John Steed fut tenu par Arthur Hewlett, selon l’ordre d’apparition 1,

    Dans la série The Avengers, période 1962-1964, le rôle du supérieur de John Steed fut tenu par Paul Whitsun-Jones selon l’ordre d’apparition 2,

    Dans la série The Avengers, période 1962-1964, le rôle du supérieur de John Steed fut tenu par Patrick Newell selon l’ordre d’apparition 3.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #67
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Un jeu d’essai :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    insert into SERIES (seriesTitle, releaseYear, alsoKnownAs, channelId) values
       ('BUGS', 1995, '', (select channelId from CHANNEL where channelName = 'BBC'))
     , ('Vingt ans dans un mur', 1948, 'La vie d''une brique', (select channelId from CHANNEL where channelName = 'M6')) 
     , ('Vingt ans au plafond', 1950, 'La vie d''une poutre', (select channelId from CHANNEL where channelName = 'M6')) 
     , ('Vingt ans dans un toit', 1960, 'La vie d''une ardoise', (select channelId from CHANNEL where channelName = 'M6')) 
     , ('The Avengers', 1975, '', (select channelId from CHANNEL where channelName = 'BBC'))
     , ('McGyver', 1984,'',(select channelId from CHANNEL where channelName = 'ABC')) 
     , ('Maguy', 1983,'',(select channelId from CHANNEL where channelName = 'FR3'))
     , ('Agence Acapulco', 1993, '', (select channelId from CHANNEL where channelName = '?'));

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select seriesTitle, releaseYear, alsoKnownAs, channelName 
    from SERIES as s join CHANNEL as c on s.channelId =c.channelId ;
    =>
      
    seriesTitle		releaseYear	alsoKnownAs		channelName
    BUGS			1995					BBC
    Vingt ans dans un mur	1948		La vie d'une brique	M6
    Vingt ans au plafond	1950		La vie d'une poutre	6
    Vingt ans dans un toit	1960		La vie d'une ardoise	M6
    The Avengers		1975					BBC
    McGyver			1984					ABC
    Maguy			1983					FR3
    Agence Acapulco		1993					?
    

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    insert into PERSON values
       ('Onésime Durand'), ('Yves-Xavier Dupont')
     , ('Ian Hendry'), ('Arthur Hewlett'), ('Douglas Muir'), ('Michael Troy'), ('Alison Armitage')
     , ('Honor Blackman'), ('Julie Stevens'), ('Jon Rollason'), ('Paul Whitsum'), ('Patrick Newell') 
     , ('Diana Rigg')
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select personName from PERSON
    =>
    personName
    Alison Armitage
    Arthur Hewlett
    Diana Rigg
    Douglas Muir
    Honor Blackman
    Ian Hendry
    Jon Rollason
    Julie Stevens
    Michael Troy
    Onésime Durand
    Patrick Newell
    Paul Whitsum
    Yves-Xavier Dupont 
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    insert into CHAR_PLAYED values
       ('Donald'), ('Mickey'), ('Le couvreur'), ('Le charpentier')
     
     , ('Dr David Keel'), ('Le Supérieur'), ('Carol Wilson'),  ('One-Ten')
     , ('Cathy Gale'), ('Miz Emma Peel'), ('Tommy Chase'), ('Katherine Cat')
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select characterName from CHAR_PLAYED ;
    =>
    Donald
    Mickey
    Le couvreur
    Le charpentier
    Dr David Keel
    Le Supérieur
    Carol Wilson
    One-Ten
    Cathy Gale
    Miz Emma Peel
    Tommy Chase
    Katherine Cat 
     
    insert into CASTING (seriesId, periode, personId, characterId, appearanceOrder) values
       (
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un toit')
        , ''
        , (select personId from PERSON where personName='Onésime Durand')
        , (select characterId from CHAR_PLAYED where characterName ='Le couvreur')
        , 1
       )
    ,
       (
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un toit')
        , ''
        , (select personId from PERSON where personName='Yves-Xavier Dupont')
        , (select characterId from CHAR_PLAYED where characterName ='Le charpentier')
        , 1
       )
    ,
    
       (  
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un mur')
        , '1948'
        , (select personId from PERSON where personName='Onésime Durand')
        , (select characterId from CHAR_PLAYED where characterName='Donald')
        , 1
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un mur')
        , '1949'
        , (select personId from PERSON where personName='Onésime Durand')
        , (select characterId from CHAR_PLAYED where characterName='Mickey')
        , 2
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un mur')
        , '1948'
        , (select personId from PERSON where personName='Yves-Xavier Dupont')
        , (select characterId from CHAR_PLAYED where characterName='Mickey')
        , 1
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un mur')
        ,'1949'
        , (select personId from PERSON where personName='Yves-Xavier Dupont')
        , (select characterId from CHAR_PLAYED where characterName='Donald')
        , 2
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Agence Acapulco')
        , '1993'
        , (select personId from PERSON where personName='Michael Troy')
        , (select characterId from CHAR_PLAYED where characterName='Tommy Chase')
        , 1
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Agence Acapulco')
        , '1998'
        , (select personId from PERSON where personName='Michael Troy')
        , (select characterId from CHAR_PLAYED where characterName='Tommy Chase')
        , 2
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Agence Acapulco')
        , '1993'
        , (select personId from PERSON where personName='Alison Armitage')
        , (select characterId from CHAR_PLAYED where characterName='Katherine Cat')
        , 1
       )
    ,
       (  
          (select seriesId from SERIES where seriesTitle = 'Agence Acapulco')
        , '1998'
        , (select personId from PERSON where personName='Alison Armitage')
        , (select characterId from CHAR_PLAYED where characterName='Katherine Cat')
        , 2
       )
    ; 
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select seriesTitle, periode, personName, characterName, appearanceOrder
    from CASTING as c
    join SERIES as s on c.seriesId = s.seriesId
    join PERSON as p on c.personId = p.personId
    join CHAR_PLAYED as h on c.characterId = h.characterId 
    order by seriesTitle, characterName, appearanceOrder ;
    =>
    seriesTitle		periode	personName		characterName	appearanceOrder
    Agence Acapulco		1993	Alison Armitage		Katherine Cat	1
    Agence Acapulco		1998	Alison Armitage		Katherine Cat	2
    Agence Acapulco		1993	Michael Troy		Tommy Chase	1
    Agence Acapulco		1998	Michael Troy		Tommy Chase	2
    Vingt ans dans un mur	1948	Onésime Durand		Donald		1
    Vingt ans dans un mur	1949	Yves-Xavier Dupont	Donald		2
    Vingt ans dans un mur	1948	Yves-Xavier Dupont	Mickey		1
    Vingt ans dans un mur	1949	Onésime Durand		Mickey		2
    Vingt ans dans un toit		Yves-Xavier Dupont	Le charpentier	1
    Vingt ans dans un toit		Onésime Durand		Le couvreur	1
    


     


     
     
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  8. #68
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Merci de me consacrer encore de votre temps.
    De cette façon, la colonne "period" est NOT NULL, ce qui n'est pas possible, puisque les périodes ne
    s'appliquent pas à toutes les séries.

    L'attribut appearance order
    Cet attribut sert uniquement, comme ci-dessous à afficher les acteurs en ayant remplacé d'autre dans un rôle bien précis, comme ci-dessous:
    Nom : Capture d’écran_2023-06-17_07-23-50.png
Affichages : 131
Taille : 78,4 Ko

  9. #69
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour Neelix,

    Citation Envoyé par Neelix
    la colonne "period" est NOT NULL, ce qui n'est pas possible, puisque les périodes ne
    s'appliquent pas à toutes les séries.
    Ce n’est pas parce que les périodes ne s'appliquent pas à toutes les séries qu’il faille marquer NULL la colonne period et s’embarquer dans une logique trivalente (vrai, faux, peut-être) qui invalide les théorèmes de la théorie relationnelle (par exemple celui de Heath, fondamental) ! On doit rester dans les clous de la logique bivalente (vrai, faux) en utilisant plutôt que NULL une valeur par défaut, '' par exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE CASTING(
       castingId INT AUTO_INCREMENT,
       seriesId INT,
       personId INT,
       characterId INT,
       appearanceOrder TINYINT NOT NULL,
       period VARCHAR(50) DEFAULT '',
    [...]
    );

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    insert into CASTING (seriesId, personId, characterId, appearanceOrder, period) values
    (
          (select seriesId from SERIES where seriesTitle = 'Vingt ans dans un toit')
        , (select personId from PERSON where personName='Onésime Durand')
        , (select characterId from CHAR_PLAYED where characterName ='Le couvreur')
        , 1
        , DEFAULT
    )
    [...]

    A propos de l'attribut appearanceOrder :

    Citation Envoyé par Neelix
    Cet attribut sert uniquement, comme ci-dessous à afficher les acteurs en ayant remplacé d'autre dans un rôle bien précis.
    Si on fait référence à l’image affichée dans le post #39, j’ai interprété les choses ainsi (post #66) :

    Arthur Hewlett a tenu le rôle du supérieur de John Steed (période 1961), après quoi :

    Citation Envoyé par fsmrel
    Dans The Avengers, années 1962-1964, Paul Whitsun-Jones et Patrick Newell tiennent successivement le rôle du supérieur de John Steed. Dans la mesure où, par exemple, l’on sait que le premier à tenir le rôle fut Paul (1963), et le deuxième fut Patrick, mais parce qu’on ne sait pas lequel des deux tint le rôle en 1963, d’accord pour mettre en oeuvre l’attribut appearanceOrder.

    Comme par ailleurs en 1961 le rôle fut tenu par Arthur Hewlett, pour celui-ci appearanceOrder prendra la valeur 1, tandis que pour son premier successeur, appearanceOrder prendra la valeur 2, et pour son deuxième successeur, appearanceOrder prendra la valeur 3.
    Reprenons maintenant la dernière image que vous avez sorte de votre chapeau :



    On a l’impression que Steven Houghton a remplacé Craig Mac Lachlan au cours d’une même période.
    Bref, l’ambiguïté est manifeste. Pour nous éviter de tourner en rond, veuillez être très précis dans l’énoncé des règles impliquant l'attribut appearanceOrder.

    En attendant, je considère que Steven Houghton a remplacé Craig Mac Lachlan, à l’occasion d’une autre période. Exact ?  

    Quelle que soit votre réponse, pour Craig Mac Lachlan, appearanceOrder = 1 et pour Steven Houghton, appearanceOrder = 2.

    En outre, je considère comme invalide la règle de gestion hypothétique suivante :

    RGxy : Dans la série S, et pour la période P, les acteurs A1 et A2 peuvent tenir le même rôle.

    Ai-je raison ?

    A propos de la clé primaire et des clés candidates de la table CASTING. Vous avez codé :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    castingId INT AUTO_INCREMENT
    [...] 
    PRIMARY KEY(castingId, seriesId, personId, characterId)
    [...]

    Puisque que castingId est auto-incrémenté, votre clé primaire est en réalité une surclé, donc seriesId, personId, characterId y sont un cautère sur une jambe de bois et doivent dégager. Il suffit de coder :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    castingId INT AUTO_INCREMENT
    [...] 
    PRIMARY KEY(castingId)
    [...]

    Vous avez défini une clé alternative {seriesId, personId, characterId, appearanceOrder, period}. Rien n’empêche alors de produire par exemple ceci :

     
    seriesTitle		personName		characterName	appearanceOrder	periode
    Vingt ans dans un toit	Onésime Durand		Le charpentier	1		1954
    Vingt ans dans un toit	Onésime Durand		Le charpentier	2		1954
    Vingt ans dans un toit	Onésime Durand		Le couvreur	1		NULL
    Vingt ans dans un toit	Onésime Durand		Le couvreur	1		1950-1952
    Vingt ans dans un toit	Onésime Durand		Le couvreur	1		1954
    Vingt ans dans un toit	Onésime Durand		Le couvreur	2		1954
    Vingt ans dans un toit	Yves-Xavier Dupont	Le couvreur	1		NULL
    Vingt ans dans un toit	Yves-Xavier Dupont	Le couvreur	1		1954
    Vingt ans dans un toit	Yves-Xavier Dupont	Le charpentier	1		1954
    
    C’est-à-dire que dans la série Vingt ans dans un toit, Durand et Dupont peuvent jouer en même temps le rôle du couvreur et celui du charpentier.
    Autrement dit, si la règle RGxy est invalide, « y’a du mou dans la corde à nœuds ».

    Autre situation : dans le post #42, j’avais posé la question suivante :

    Citation Envoyé par fsmrel
    Dans la série S et durant la période P, l’acteur A peut-il tenir le rôle de plus d’un personnage ?
    Dans le post #43, vous aviez répondu par la négative.
    Dans le résultat ci-dessus, dans la série "Vingt ans dans un toit", en 1954, Durand joue deux rôles, celui du charpentier et celui du couvreur (même chose pour Dupont)...

    Pour interdire cela, il doit donc exister la dépendance fonctionnelle :

    DF1 : {seriesId, personId, appearanceOrder, periode} → {characterId}

    Ce qui se traduit ainsi en SQL pour la table CASTING :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
     UNIQUE (seriesId, personId, appearanceOrder, periode)

    Qui plus est, dans une série donnée, pour un ordre d’apparition donné et un acteur donné, on ne peut pas avoir simultanément deux périodes différentes, c’est-à-dire que la dépendance fonctionnelle DF1 est réductible à celles-ci :

    DF2 : {seriesId, personId, appearanceOrder} → {characterId}
    DF3 : {seriesId, personId, appearanceOrder} → {periode}

    Ce qui se traduit ainsi en SQL :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
     UNIQUE (seriesId, personId, appearanceOrder)


    Une interprétation de la table CASTING :

    CREATE TABLE CASTING
    (
       castingId INT AUTO_INCREMENT,
       seriesId INT,
       personId INT,
       characterId INT,
       appearanceOrder TINYINT DEFAULT 1
       period VARCHAR(9) DEFAULT '',
       PRIMARY KEY(castingId), 
       CONSTRAINT CASTING_spa UNIQUE (seriesId, personId, appearanceOrder),
       CONSTRAINT CASTING_spp UNIQUE (seriesId, personId, period),
       FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId) ON UPDATE CASCADE,
       FOREIGN KEY(personId) REFERENCES PERSON(personId) ON UPDATE CASCADE,
       FOREIGN KEY(characterId) REFERENCES CHAR_PLAYED(characterId) ON UPDATE CASCADE
    );
    
    Manifestement, la contrainte CASTING_spa peut servir de clé primaire, auquel cas l’attribut castingId est rendu inutile et peut disparaître.

    L’attribut appearanceOrder peut prendre la valeur 1 par défaut (ou autre, par exemple 0).
    Rappel : l’attribut period peut prendre la valeur '' par défaut.

    Ce qui vaut pour personId devrait valoir pour characterId (à bien vérifier quand même), auquel cas on aurait les dépendances fonctionnelles suivantes :

    DF4 : {seriesId, characterId, appearanceOrder} → {personId}
    DF5 : {seriesId, characterId, appearanceOrder} → {periode}

    Ma dernière interprétation de la table CASTING :

     
    CREATE TABLE CASTING
    (
       seriesId INT,
       personId INT,
       characterId INT,
       appearanceOrder TINYINT DEFAULT 1, 
       period VARCHAR(9) DEFAULT '',
       PRIMARY KEY(seriesId, personId, appearanceOrder), 
       CONSTRAINT CASTING_spp UNIQUE (seriesId, personId, period),
       CONSTRAINT CASTING_sca UNIQUE (seriesId, characterId, appearanceOrder),    
    
       FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId) ON UPDATE CASCADE,
       FOREIGN KEY(personId) REFERENCES PERSON(personId) ON UPDATE CASCADE,
       FOREIGN KEY(characterId) REFERENCES CHAR_PLAYED(characterId) ON UPDATE CASCADE
    );
    
    A noter que VARCHAR(9) suffit pour l’attribut period (exemple : '1995-1997').


     
     
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  10. #70
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    J’ai oublié de préciser ceci :

    Observez que le dernier CREATE TABLE CASTING reprend et complète celui figurant dans le post #66.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #71
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    En effet, je me rends compte que je ne qui pas assez clair dans mes règles.

    Dans une série sans périodes:
    • Un acteur peut interpréter un ou plusieurs rôles dans une même série.
    • Un acteur peut en remplacer un ou plusieurs autres dans une même série.


    Dans une série avec des périodes :
    • Un acteur peut être rsté dans son rôle tout le long de la série.
    • Un acteur peut interpréter un ou plusieurs rôles au cours d'une même période.
    • Un acteur peut en remplacer un ou plusieurs autres au cours d"une même période.


    En attendant, je considère que Steven Houghton a remplacé Craig Mac Lachlan, à l’occasion d’une autre période. Exact ?
    Il s'agît d'une série qui n'a pas de périodes. Steve Houghton a remplacé Craig Mac Laclan au cours de la série.

    RGxy : Dans la série S, et pour la période P, les acteurs A1 et A2 peuvent tenir le même rôle.

    Ai-je raison ?
    Tout à fait, A1 pourra remplacé A2 dans le même rôle.

    Ce n’est pas parce que les périodes ne s'appliquent pas à toutes les séries qu’il faille marquer NULL la colonne period et s’embarquer dans une logique trivalente (vrai, faux, peut-être) qui invalide les théorèmes de la théorie relationnelle (par exemple celui de Heath, fondamental) ! On doit rester dans les clous de la logique bivalente (vrai, faux) en utilisant plutôt que NULL une valeur par défaut, '' par exemple :
    Je ne voyais pas la chose comme ça.

  12. #72
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir Neelix,

    Dans le post #42, j’avais posé la question :

    Citation Envoyé par fsmrel
    Dans la série S et durant la période P, l’acteur A peut-il tenir le rôle de plus d’un personnage ?
    Dans le post #43, vous avez répondu :

    Citation Envoyé par Neelix
    Non, dans ce cas de figure cela ne se produit pas.

    Maintenant vous écrivez :

    Citation Envoyé par Neelix
    Dans une série sans périodes :
    Un acteur peut interpréter un ou plusieurs rôles dans une même série.
    D'accord. Il s’agit d’une nouvelle règle, jusqu’ici non écrite, et il va falloir que j’en tienne compte.

    Mais vous écrivez aussi :

    Citation Envoyé par Neelix
    Dans une série avec des périodes :
    Un acteur peut interpréter un ou plusieurs rôles au cours d'une même période.
    Cette fois-ci il y a contradiction avec vote réponse du post #43.

    Avant d’aller plus loin et de continuer à faire des ronds dans l’eau, quelle règle doit-on retenir face à cette contradiction ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  13. #73
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    En effet, en vous répondant cet après-midi, j'étais entrain de réfléchir que, ayant déjà pas mal de fiches séries de prêtes, je me basais un peu trop
    sur ce que j'avais moi, sans penser aux fiches séries à venir, ou dans certains cas, au fait que, certains concepts, comme celui de l'ordre d'apparition destiné initialement à affiché les acteurs en ayant remplacé d'autres pourraient également être utilisés autrement.

    C'est à force de discussion avec vous que je me rends compte de certaines choses pourtant parfaitement logiques.

    Par conséquent j'ai tendance à manquer de clarté et quelquefois aussi de logique, et je m'en excuse.

    Les règles à retenir, sont donc les dernières que j'ai édictées. Par contre, je trouvais cela logique, mais je le précise tout de même, pour plus de clarté, dans une série avec des périodes, un acteur peut interpréter plusieurs rôles ou remplacer un ou plusieurs acteurs, également dans des périodes différentes.

  14. #74
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    D’accord donc pour que, dans une série donnée, deux acteurs jouent le même rôle. Mais cela implique de leur affecter des valeurs différentes pour l’attribut appearanceOrder (on n’est quand même pas encore dans un monde quantique...)

    Ainsi pour une série donnée et un rôle donné, c’est appearanceOrder qui permet de distinguer les acteurs (que la série soit à périodes ou non).

    La clé primaire devient {seriesId, characterId, appearanceOrder}.

    Il existe aussi la clé alternative {seriesId, personId, characterId, periode}.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE CASTING
    (   seriesId INT
     , personId INT
     , characterId INT NOT NULL
     , appearanceOrder TINYINT NOT NULL
     , periode VARCHAR(9) DEFAULT ''
     , CONSTRAINT CASTING_PK PRIMARY KEY(seriesId, characterId, appearanceOrder) 
     , CONSTRAINT CASTING_spp UNIQUE (seriesId, personId, characterId, periode)     
     , CONSTRAINT CASTING_SERIES_FK FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId)
     , CONSTRAINT CASTING_PERSON_FK FOREIGN KEY(personId) REFERENCES PERSON(personId)
     , CONSTRAINT CASTING_CHARACTER_FK FOREIGN KEY(characterId) REFERENCES CHAR_PLAYED (characterId));

    Exemple (sans période) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    insert into CASTING (seriesId, personId, characterId, appearanceOrder, periode) values
       (  (select seriesId from SERIES where seriesTitle = 'BUGS')
        , (select personId from PERSON where personName ='Craig Mac Lachlan')
        , (select characterId from CHAR_PLAYED where characterName ='Ed Russel')
        , 1             /* appearanceOrder */
        , DEFAULT       /* periode */ )
    ,  ( (select seriesId from SERIES where seriesTitle = 'BUGS')
        , (select personId from PERSON where personName = 'Steven Houghton')
        , (select characterId from CHAR_PLAYED where characterName = 'Ed Russel')
        , 2             /* appearanceOrder */
        , DEFAULT       /* periode */ ) ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select seriesTitle, periode, personName, characterName, appearanceOrder
    from CASTING as c
    join SERIES as s on c.seriesId = s.seriesId
    join PERSON as p on c.personId = p.personId
    join CHAR_PLAYED as h on c.characterId = h.characterId 
    order by seriesTitle, characterName, appearanceOrder;
    =>

    seriesTitle	periode		personName		characterName	appearanceOrder
    BUGS				Craig Mac Lachlan	Ed Russel	1
    BUGS				Steven Houghton		Ed Russel	2
    
     
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  15. #75
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Le MCD correspondant :

    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  16. #76
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Je vous remercie, grâce à vous j'avance.

  17. #77
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Citation Envoyé par Neelix
    Je vous remercie, grâce à vous j'avance.
    Où en êtes-vous ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  18. #78
    Membre du Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Je m'excuse, je n'avais pas vu que vous m'écriviez à nouveau.
    Mon site est maintenant en ligne:

    www.seriemaniacs.fr

    Tout fonctionne à merveille.

    Par contre, j'étais venu déterrer ce post, car, je prévoit maintenant d'ajouter pour chaque série une fiche listant les épisodes, et je ne sais
    pas trop comment m'y prendre.

    La fiche doit apparaître sous cette forme:
    Nom : episodes.jpg
Affichages : 50
Taille : 900,9 Ko

    Sachant que:
    • Une série peut avoir 1 ou plusieurs épisodes
    • Une ou plusieurs série peuvent avoir un épisode avec un titre identique
    • Une série peut avoir 1 ou plusieurs saisons
    • Une ou plusieurs séries peuvent avoir un nombre de saisons identique


    Je vous serais reconnaissant de m'aider encore une fois.

  19. #79
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut Mieux vaut tard que jamais...
    Bonjour Neelix,

    Citation Envoyé par Neelix
    Je vous serais reconnaissant de m'aider encore une fois.
    Je suis désolé de ne pas vous avoir répondu. En effet, votre message date du 30 juin 2023, jour où je me suis blessé et ai dû être hospitalisé pour un bon moment. Je viens seulement de vous lire, ainsi que votre échange avec escartefigue...

    Si vous êtes toujours là...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. Réponses: 0
    Dernier message: 30/01/2013, 22h27
  3. Modélisation d'une BDD
    Par kaiser21 dans le forum UML
    Réponses: 2
    Dernier message: 09/03/2012, 14h40
  4. Outils pour modéliser le Schéma d'une BDD ?
    Par Tchupacabra dans le forum Outils
    Réponses: 7
    Dernier message: 20/05/2008, 16h43
  5. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo