j'ai besoin de votre aide car je dois faire une base de donné pour mes études j'ai choisi le sujet film et série. J'ai donc construis mes tables
FILM
SERIE
GENRE
Personne(vie réelle acteur réalisateur...)
EPISODE
SAISON
Mon problème c'est que les personne de la vie réelle peuvent avoir plusieurs rôle comme Acteur et réalisateur je pense notamment à Clint Eastwood qui est les deux donc comment je peux faire pour pas avoir un doublon de Clint Eastwood en acteur et réalisateur.
Pour l'instant j'ai mis plusieurs champs acteurs et un champ réalisateur dans ma table de film mais j'aimerai savoir si c'est possible de faire plus simple mais sans doublon de Clint Eastwood.
Merci de votre aide si vous avez besoin d'une image de mon diagramme EER dite le moi.
Rajouter une table rôle et faire une association 1N/1N entre personne et Rôle :
1 personne peut avoir 1 ou plusieurs rôles. Et 1 role peut appartenir a 1 ou plusieurs personnes.
Exemple
Personne (id_personne, nom, vie_reelle)
Personne_role(id_personne, id rôle)
Role(id_role, job)
Bon après dans la Table personne_role tu aura quand même 2 fois id_personne si elle est acteur + realisateur.
Sinon le plus simple (si on oublie tout ce qui est intégrite, évolutivité, maintenabilité de la table ) serait de rajouter une colonne noms et de remplacer les colonnes acteur, realisateur par job et fusionner les metier en et creer un metier (realisateur_acteur)
L'idéal serait même une relation ternaire entre rôle, film et personne.
Ainsi tu peux modéliser pour chaque film le rôle de chaque personne, y compris le fait qu'une même personne puisse avoir plusieurs rôle pour un même film.
Quand tu commences à numéroter les colonnes dans une table c'est qu'il y a un problème de conception ...
Je te conseille la lecture du doc. "Conception BDD" via ma signature.
La table personne liste toutes les personnes possibles.
La table film liste tous les films possibles.
La table metier liste tous les métiers possibles (auteur, réalisateur, scénariste, musique, casting, etc.).
La table participation relie une personne, un film et un métier. La colonne details permet ici de stocker une info relative au trio (nom du rôle, ou précision sur la participation par exemple).
DeveloSt a écrit:
comment reconnaître quand il faut utiliser une relation ternaire ?
Simplement quand tu une relation est définie entre 3 entités en même temps ...
fusionne peut-être aussi les tables films et séries (vu qu'ils contiennent les mêmes infos) et rajoute une colonne pour indiquer si série ou film ou documentaire ou ... (cette colonne pourrait aussi être une autre table d'ailleurs).
Une table mère "média" avec les infos communes aux films et aux séries, et deux tables "filles" film et série chacune avec ses propres attributs.
Si on fait comme cela, ce n'est plus évolutif (si par exemple on n'a oublié qu'il y avait une table fille documentaire ou tout simplement rajouter une table fille supplémentaire) ?
Edit : ou alors créer une nouvelle table, les colonnes, contraintes d'intégrités a partir d'un formulaire de saisie c'est possible ?
Ou alors utiliser du no-SQL ? (comme j'ai pris de l'avance sur le planning dans le projet, j'essaye de me former sur d'autre chose)
Utiliser un language de structuration des données xml, json et créer un fichier par média/film,serie,...
J'ai eu l'occasion d'utiliser 2-3 fois pour récupérer des informations ou insérer des données mais jamais de créer une structure ou d'utiliser une BDD no-SQL... peut être à l'avenir j'aurai l'occasion d'approfondir se côté.
Si on fait comme cela, ce n'est plus évolutif (si par exemple on n'a oublié qu'il y avait une table fille documentaire
Oui, cet "oubli" implique de modifier le modèle pour ajouter une table fille "Documentaire", mais vu l'ampleur de l'évolution induite cela ne me choque pas ... car de toute façon le code applicatif aussi sera à modifier pour ajouter les fonctionnalités propres à ce nouveau type ...
DeveloSt a écrit:
ou alors créer une nouvelle table, les colonnes, contraintes d'intégrités a partir d'un formulaire de saisie c'est possible ?
C'est possible en effet, mais, en tenant compte de ma remarque précédente ce serait accessoire ... Si tu dois changer le code applicatif pour intégrer une nouvelle fonctionnalité (gestion de documentaires) modifier la base de données ira avec ...
DeveloSt a écrit:
Ou alors utiliser du no-SQL ?
Le choix de l'un (SQL) ou l'autre (NoSQL) portera sur d'autres critères ... Notamment sur l'importance de l'intégrité référentielle (gérée en SQL et pas en NoSQL). Dans ce projet, le besoin d'intégrité référentielle me semble fort, donc SQL ...
DeveloSt a écrit:
Utiliser un language de structuration des données xml, json et créer un fichier par média/film,serie,...
C'est possible en effet, mais, en tenant compte de ma remarque précédente ce serait accessoire ... Si tu dois changer le code applicatif pour intégrer une nouvelle fonctionnalité (gestion de documentaires) modifier la base de données ira avec ... qu'elle soit SQL, ou fichiers XML, JSON, etc., sauf que SQL vient quand même avec son lot de fonctionnalités bien pertinentes dans les projets applicatifs (ACID).
Bon je m'arrête car on s'éloigne franchement de la question de départ, sur laquelle @fredcoyau n'est plus intervenu ...
Bonsoir à tous je vois que vous avez plein de solution à me proposer j'aurai du me tenir plus à jour sur le sujet j'ai fini de rentrer les infos que je voulais dans ma BDD même si j'ai bien compris que c'est pas la meilleure façon d'après tout vos messages il y a des chance pour que je la fasse évoluer petit à petit donc je reviendrai surement vous faire un petit coucou pour vous embêter car honnêtement j'ai pas vu en cours ce qu'était une table mère et fille.
la pour l'instant je dois me concentre sur le site internet c'est pas une mince affaire encore ce truc la surtout avec les cours bizarre qu'on a cause du Coronavirus.
Je vous dit encore un grand merci pour votre aide et je reviens au plus vite pour mettre à niveau ma BDD.
Bonne soirée Fred
Base de donnée film et série
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr
Site Internet : https://devst.go.yj.fr