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. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut Modélisation d'une BdD séries TV
    Bonjour,

    Je travaille sur une base de données destinée à l'affichage de fiches série sur un site web.

    Les règles de gestion sont les suivantes:

    • Une série étrangère possède un titre original et peut posséder un titre français
    • Une série française possède un titre original
    • Une série (française ou étrangère) peut posséder un titre alternatif
    • Une série peut avoir un ou plusieurs acteurs
    • Une série peut être produite par une ou plusieurs majors
    • Une série peut avoir un ou plusieurs producteurs exécutifs
    • Une série peut avoir un ou plusieurs réalisateurs
    • Une série étrangère possède une première diffusion (Pays, Chaîne, Année), ainsi qu'une première diffusion en France (France, Chaîne, Année)
    • Une série française possède une première diffusion (France, Chaîne, Année)
    • Chaque série a une distribution
    • Une distribution appartient à au moins une série
    • Une distribution peut contenir un ou plusieurs acteurs
    • Une distribution peut contenir un ou plusieurs rôles
    • Un acteur peut avoir interprété un ou plusieurs rôles dans une même série
    • Un acteur peut avoir joué dans une ou plusieurs séries
    • Un acteur peut avoir joué le même rôle dans une ou plusieurs séries (spin-off)
    • Un réalisateur peut avoir réalisé une ou plusieurs séries
    • Un producteur exécutif peut avoir produit une ou plusieurs séries
    • Une major peut avoir produit une ou plusieurs séries


    Et voici mon MCD:

    Nom : series.jpg
Affichages : 362
Taille : 113,7 Ko

    J'aimerais savoir de quelle façon m'y prendre pour l'affichage des pays, chaînes et années de première diffusion.


    Voilà un exemple de présentation d'une fiche:

    Nom : fiche.jpg
Affichages : 337
Taille : 64,9 Ko

    Vous remerciant par avance de toute l'aide que vous pourrez m'apporter.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonjour Neelix57,


    Une entité-type (ou classe d’entités) représente une catégorie d’objets (entités) semblables, elle est conceptuelle et il est convenu de la nommer au singulier : Series est à renommer en Serie.


    Citation Envoyé par Neelix57
    Une série peut être produite par une ou plusieurs majors
    Une série peut avoir un ou plusieurs producteurs exécutifs
    Comment traduit-on Major en français : Groupe ?

    Existe-t-il une relation entre un major et un producteur exécutif ? Jamais, parfois, toujours ?


    Comme dit Yves Tabourier (De l’autre côté de Merise, page 88), les cardinalités maximum à 1 pour les associations à plus de deux pattes « manquent d’intérêt », et pour ma part, je dirais que c’est un euphémisme ! Ainsi, votre association ORIGINAL_RELEASE est suspecte. Elle permet d’associer une série à un pays et à une chaîne qui n’a rien à voir avec ce pays. Qu’en est-il ?
    (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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Bonjour;

    Tout d'abord merci fsmrel de l'intérêt que vous portez à mon cas.

    Une entité-type (ou classe d’entités) représente une catégorie d’objets (entités) semblables, elle est conceptuelle et il est convenu de la nommer au singulier
    En effet, il s'agît d'une erreur de ma part.

    Comment traduit-on Major en français : Groupe ?
    Une Major, est une boîte de production telle que Paramount ou Belisarius.

    Existe-t-il une relation entre un major et un producteur exécutif ?
    Non, il n'existe aucune relation.

    Ainsi, votre association ORIGINAL_RELEASE est suspecte. Elle permet d’associer une série à un pays et à une chaîne qui n’a rien à voir avec ce pays. Qu’en est-il ?
    Effectivement. Ca ne me convient pas vraiment, mais, là non plus, je ne sais pas trop que faire.

    Puisque, s'il s'agît d'une série française, il n'y aura une première diffusion que sur une chaîne française, alors qu'un série étrangère aura une première diffusion sur une chaîne de son pays d'origine ET sur une chaîne française.

    Je suis d'ailleurs un peu sur le même dilemme concernant le titre original et français et le titre original pour une série française, c'est pourquoi la saisie du champ seriesTitle est requise, contrairement à celle du champ frenchTitle. Mais là aussi, je ne suis pas sûr du bien fondé de la chose.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par Neelix57
    J'aimerais savoir de quelle façon m'y prendre pour l'affichage des pays, chaînes et années de première diffusion.
    Pour vous en sortir, il serait opportun d’en passer par la spécialisation (héritage).

    Le schéma ci-dessous devrait pouvoir vous inspirer :




    Une série est, soit française, soit étrangère.
    Une série étrangère a ses propriétés propres et ses propriétés françaises.

    A noter que l’entité-type CHAINE est utilisée aussi bien pour les chaînes françaises qu’étrangères.

    En passant, comment se porte votre base de données LEGO ?
    (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.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Je vous remercie, je vais essayer de continuer sur ce modèle.
    En fait, si je travaille avec Looping depuis que vous m'avez aidé sur ma base LEGO, je ne savais pas à quoi servaient certaines fonctionnalités telles que les héritages.

    Par contre, je reviens à mon entité-type "SERIES". En fin de compte ce n'était pas faux, puisque je nomme tout en anglais. Et en anglais Série se traduit Series.

    En passant, comment se porte votre base de données LEGO ?
    Elle fonctionnait (grâce à vous), mais je l'ai malheureusement perdu suite à une réinstallation du système.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Je reviens à vous avec mon nouveau MCD. Je pense que que cela devrait convenir.

    A noter que, du coup, j'ai conservé le nom de l'entité-type "SERIES".


    Nom : series_fsmrel.jpg
Affichages : 310
Taille : 117,5 Ko

  7. #7
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 702
    Points : 2 831
    Points
    2 831
    Par défaut
    Bonjour,

    Si la classe fille FRENCH_SERIES ne contient aucune rubrique et n'est associée à aucune autre classe d'entittés, une association 0,1---1,1 entre SERIES et FOREIGN_SERIES peut suffire.
    Pour extraire les séries françaises, il suffirait alors de sélectionner les SERIES avec un frenchReleaseYearId (clé étrangère de FOREIGN_SERIES dans SERIES) NULL.
    Ca permet d'avoir une table de moins dans la BD, mais les puristes BD n'aiment pas les NULL !!!
    Par ailleurs, dans votre modèle actuel, la future table FRENCH_SERIES, qui sera certes uniquement composée de la clé étrangère (et aussi primaire) seriesId, peut avoir de l'intérêt pour vos traitements.

    Bonne continuation !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Bonjour Paprick et merci pour ces commentaires. Cela allègerait la base, mais, à mon avis, cela serait également plus confus.

    Et, ceci dit, je ne suis pas très fan des NULL.

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par Raoul
    les puristes BD n'aiment pas les NULL !!!
    Et les tenants du modèle relationnel de données non plus !

    Le loup n’est pas loin, Neelix57 a choisi la voie de la sagesse, à l’image de Naf-Naf :



    Contrairement à Nif-Nif et Nouf-Nouf...



    Au plaisir !
    (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. #10
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 702
    Points : 2 831
    Points
    2 831
    Par défaut
    Oui, mais à trop bétonner, ça devient parfois trop lourd !
    Dans le cas présent, c'est vrai qu'il faut éviter ce NULL qui n'apporte pas grand chose ; mais parfois un petit NULL vaut mieux qu'une grande table !
    Comme pour toute chose, il faut savoir raison garder et ne pas sombrer systématiquement dans le respect de dogmes préétablis (cf. nos précédents débats sur les identifiants sans signification ...)
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Dans le cas présent, c'est vrai qu'il faut éviter ce NULL qui n'apporte pas grand chose ; mais parfois un petit NULL vaut mieux qu'une grande table
    Certes, je n'ai jamais été pour les NULL, mais, effectivement, il m'est déjà arrivé de les préférer à une grande table et ils m'ont déjà facilité la vie.

    La simplicité n'est pourtant pas toujours la meilleure des solutions

    En tout cas, je ne peux que vous remercier, fsmrel et Paprick, car, grace à vous deux j'ai beaucoup apris lors de la création de ma base LEGO. Certes, je suis encore loin d'avoir atteint votre noveau, mais j'apprends grâce à vous. Je ne peux que me féliciter de m'être inscrit sur ce forum ou aide et apprentissage vont de paire.

    Encore merci à vous deux.

    Je ne mets pas encore ce post en résolu. Peut-être aurais-je encore d=besoin de votre aide.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    La nuit portant conseil, je m"aperçois ce matin que j'ai omis un détail important figurant sur une fiche série. La fiche signale si une série est le spin-off (la suite) d'une autre.
    Je pense également préciser le ou les spin-offs d'une série.

    Des règles s'ajouterons donc :

    • Un série peut avoir un ou plusieurs spin-offs.
    • Une série n'est le spin-off que d'une seule autre série.
    • Une série peut ne pas avoir de préquelle (série parente).
    • Une série peut avoir plusieurs préquelles.
    • Une série n'est la préquelle que d'une seule autre série.



    J'ai donc modifié mon MCD en conséquence. Cela est-il juste ?


    Nom : series_spinoff.jpg
Affichages : 289
Taille : 132,2 Ko

  13. #13
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonjour le matinal,


    Votre modélisation est de même nature que celle qu’avait proposée Paprick à aras-vbo, Modélisation d'un arbre hiérarchique.

    Dans le MCD, vous pouvez vous contenter de l’association réflexive SPINOFF :



    Pour générer la table SPINOFF à partir de l’association réflexive, y cocher la case Générer une table de correspondance dans le MLD.

    =>

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      CREATE TABLE SPINOFF
    (
       seriesId_prequel INT,
       seriesId_spinOff INT NOT NULL,
       CONSTRAINT SPINOFF_PK PRIMARY KEY(seriesId_prequel),
       CONSTRAINT SPINOFF_SERIES_prequel_FK FOREIGN KEY(seriesId_prequel) REFERENCES SERIES(seriesId),
       CONSTRAINT SPINOFF_SERIES_spinOff_FK FOREIGN KEY(seriesId_spinOff) REFERENCES SERIES(seriesId)
    ) ;


    A propos de votre attribut isSpinOff, qu’attendez-vous de lui ?
    (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.

  14. #14
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 702
    Points : 2 831
    Points
    2 831
    Par défaut
    Bonjour,
    Sauf erreur de ma part, il y a une petite correction à apporter concernant la solution de fsmrel : en effet, aussi étonnant que cela puisse paraître, les noms de rôles doivent être inversés (la clé primaire de la table SPINOFF sera alors : seriesId_spinOff).
    Cela peut surprendre, mais en y regardant de près, c'est logique !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    A propos de votre attribut isSpinOff, qu’attendez-vous de lui ?
    La fiche d'une série qui est le spin-off d'une autre signalera qu'elle est spin-off de...
    Quelque-chose du genre:
    Nom : spinoff.jpg
Affichages : 259
Taille : 48,8 Ko

    Cela peut surprendre, mais en y regardant de près, c'est logique !
    Cela paraît effectivement plus logique, mais Looping lui-même donne le code SQL donné par fsmrel.
    Du reste, il me semble que cela reviendrait à changer les cardinalités, ce qui n'obéirait plus aux règles.

  16. #16
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 291
    Points : 39 562
    Points
    39 562
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Je prends cette conversation en route après quelques jours d'absence.

    Concernant les différents intervenants, il est possible de modéliser autrement, en choisissant une association ternaire entre une entité-type [PERSONNE] (qui remplacerait producteur et directeur), une entité-type [ROLE] et l'entité-type [SERIE].

    Cette solution est intéressante si une même personne peut être tantôt directeur, tantôt producteur, voire autre chose, on évite les redondances et donc les risques d'incohérences.
    Les rôles peuvent être "directeur", "producteur", "réalisateur", "éclairagiste", "script", etc.

    Notez [SERIE] plutôt que [SERIES]. En effet, le type d'entité se nomme au singulier (il va sans dire qu'il peut y avoir plusieurs occurrences d'entités dans chaque type )

    Ce qui donne :

    Nom : MCD.png
Affichages : 156
Taille : 37,3 Ko

  17. #17
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    A propos de l’attribut isSpinOff :

    Citation Envoyé par Neelix57
    La fiche d'une série qui est le spin-off d'une autre signalera qu'elle est spin-off de...
    Le type de cet attribut est booléen. Cet attribut est inessentiel, autrement dit il est redondant.
    Avec une requête SQL, on sait produire le résultat attendu (cf. « Vue SPINOFF » ci-dessous).  



    Un jeu d’essai (SQL Server) :

    CREATE TABLE COUNTRY
    (
       countryId INT NOT NULL IDENTITY
     , countryName VARCHAR(50) NOT NULL
     , CONSTRAINT COUNTRY_PK PRIMARY KEY(countryId)
    ) ;
    
    insert into COUNTRY values
        ('France'), ('Grande-Bretagne'), ('Belgique'), ('Etats-Unis')
    ;
    select * from COUNTRY ;
    
    CREATE TABLE CHANNEL
    (
       channelId INT NOT NULL IDENTITY
     , channelName VARCHAR(50) NOT NULL
     , CONSTRAINT CHANNEL_PK PRIMARY KEY(channelId)
     , CONSTRAINT CHANNEL_AK UNIQUE(channelName)
    ) ;
    
    insert into CHANNEL values
        ('BBC'), ('DVP'), ('M6')
    select * from CHANNEL ;
    
    CREATE TABLE SERIES
    (
       seriesId INT NOT NULL IDENTITY
     , seriesTitle VARCHAR(50) NOT NULL
     , releaseYear INT NOT NULL
     , alsoKnownAs VARCHAR(50) NOT NULL
     , channelId INT NOT NULL
     , CONSTRAINT SERIES_PK PRIMARY KEY(seriesId)
     , CONSTRAINT SERIES_CHANNEL_FK FOREIGN KEY(channelId) REFERENCES CHANNEL(channelId)
    ) ;
    
    insert into SERIES values
       ('BUGS', 1995, '', 1)
     , ('Vingt ans dans un mur', 1948, 'La vie d''une brique', 3) 
     , ('Vingt ans au plafond', 1950, 'La vie d''une poutre', 3) 
     , ('Vingt ans dans un toit', 1960, 'La vie d''une ardoise', 3) 
     , ('21 Jump Street', 1987, '', 1) 
     , ('Booker', 1989, '', 1) 
    ;
    select * from SERIES ;
    
    CREATE TABLE FOREIGN_SERIES
    (
       seriesId INT NOT NULL 
     , frenchReleaseYear INT NOT NULL
     , frenchTitle VARCHAR(50) NOT NULL
     , frenchAka VARCHAR(50) NOT NULL
     , channelId INT NOT NULL
     , countryId INT NOT NULL
     , CONSTRAINT FOREIGN_SERIES_PK PRIMARY KEY(seriesId)
     , CONSTRAINT FOREIGN_SERIES_SERIES_FK FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId)
     , CONSTRAINT FOREIGN_SERIES_CHANNEL_FK FOREIGN KEY(channelId) REFERENCES CHANNEL(channelId)
     , CONSTRAINT FOREIGN_SERIES_COUNTRY_FK FOREIGN KEY(countryId) REFERENCES COUNTRY(countryId)
    ) ;
    
    insert into FOREIGN_SERIES values
        (1, 1996, 'Bugs', '', 1, 2)
    ;
    select seriesTitle, frenchReleaseYear, frenchAka, countryName, channelName
    from FOREIGN_SERIES as f
    join SERIES as s on s.seriesId = f.seriesId
    join COUNTRY as c on f.countryId = c.countryId
    join CHANNEL as h on f.channelId = h.channelId
    ;
    
    CREATE TABLE FRENCH_SERIES
    ( 
       seriesId INT NOT NULL
     , CONSTRAINT FRENCH_SERIES_PK PRIMARY KEY(seriesId)
     , CONSTRAINT FRENCH_SERIES_SERIES_FK FOREIGN KEY(seriesId) REFERENCES SERIES(seriesId)
    ) ;
    
    insert into FRENCH_SERIES values
       (2) 
    ;
    select s.seriesId, seriesTitle, releaseYear, alsoKnownAs, channelName
    from SERIES as s
    join FRENCH_SERIES as f on s.seriesId = f.seriesId
    join CHANNEL as h on s.channelId = h.channelId
    ;
    
    
    CREATE TABLE SPINOFF
    (
       seriesId_prequel INT NOT NULL
     , seriesId_spinOff INT NOT NULL
     , CONSTRAINT SPINOFF_PK PRIMARY KEY(seriesId_prequel)
     , CONSTRAINT SPINOFF_SERIES_prequel_FK FOREIGN KEY(seriesId_prequel) REFERENCES SERIES(seriesId)
     , CONSTRAINT SPINOFF_SERIES_spinOff_FK FOREIGN KEY(seriesId_spinOff) REFERENCES SERIES(seriesId)
    );
    insert into SPINOFF values
       (3, 2) 
     , (4, 2) 
     , (6, 5) 
    ;
    
    /* Vue SPINOFF */
    
    select  q.seriesTitle as enfant, t.seriesTitle as parent
    from SPINOFF as f
    join  SERIES as q on f.seriesId_prequel = q.seriesId
    join  SERIES as t on f.seriesId_spinOff = t.seriesId  
    ;
    =>

    Vue SPINOFF

    enfant				parent
    ----------------------	---------------------
    Vingt ans au plafond	Vingt ans dans un mur
    Vingt ans dans un toit	Vingt ans dans un mur
    Booker			21 Jump Street 
    (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. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Cette solution est intéressante si une même personne peut être tantôt directeur, tantôt producteur, voire autre chos
    Vous avez raison, escartefigue, je ne voyais pas la chose sous cet angle. Du coup, je récapitule les règles de gestion, en y ajoutant de nouvelles.

    • Une série étrangère possède un titre original et peut posséder un titre français
    • Une série française possède un titre original
    • Une série (française ou étrangère) peut posséder un titre alternatif
    • Une série peut avoir un ou plusieurs acteurs
    • Une série peut être produite par une ou plusieurs majors
    • Une série peut avoir un ou plusieurs producteurs exécutifs
    • Une série peut avoir un ou plusieurs réalisateurs
    • Une série étrangère possède une première diffusion (Pays, Chaîne, Année), ainsi qu'une première diffusion en France (France, Chaîne, Année)
    • Une série française possède une première diffusion (France, Chaîne, Année)
    • Chaque série a une distribution
    • Une distribution appartient à au moins une série
    • Une distribution peut contenir un ou plusieurs acteurs
    • Une distribution peut contenir un ou plusieurs rôles
    • Un acteur peut avoir interprété un ou plusieurs rôles dans une même série
    • Un acteur peut avoir joué dans une ou plusieurs séries
    • Un acteur peut avoir joué le même rôle dans une ou plusieurs séries (spin-off)
    • Un réalisateur peut avoir réalisé une ou plusieurs séries
    • Un producteur exécutif peut avoir produit une ou plusieurs séries
    • Une major peut avoir produit une ou plusieurs séries
    • Un série peut avoir un ou plusieurs spin-offs
    • Une série n'est le spin-off que d'une seule autre série
    • Une série peut ne pas avoir de préquelle (série parente)
    • Une série peut avoir plusieurs préquelles
    • Une série n'est la préquelle que d'une seule autre série
    • Dans une série, une personne a au moins une fonction (acteur, réalisateur ou producteur)
    • Dans une série, une personne peut avoir plusieurs fonctions


    Notez [SERIE] plutôt que [SERIES]. En effet, le type d'entité se nomme au singulier
    Comme je l'ai mentionné plus haut, je donne des nom anglophones. Et série au singulier, en anglais, s'écrit series. Cela pose-t-il tout de même un problème de conventions ?

    Avec une requête SQL, on sait produire le résultat attendu
    C'est très juste fsmrel, je n'y aurait pas pensé.

    Enfin, j'ai modifié mon MCD en conséquence, tout en gardant, dans l'immédiat le nom de mon entité SERIES:
    Pièce jointe 639559Nom : mcd_series.jpg
Affichages : 253
Taille : 115,0 Ko

  19. #19
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Citation Envoyé par Neelix57
    Comme je l'ai mentionné plus haut, je donne des nom anglophones. Et série au singulier, en anglais, s'écrit series. Cela pose-t-il tout de même un problème de conventions ?
    Le tout est d’être cohérent. Ainsi, dans mon post précédent, comme vous j’ai anglicisé les termes, et j’estime qu’il n’y a là rien de peccamineux !
    (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.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Bien sûr que non. De fait, vous avez repris mes propres termes.

    Je posais simplement la question, du fait que escartefique m'a fait la même réflexion que vous.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

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