Création d'une base de donée - SQL/NoSQL - Programmation
Marsh Posté le 16-12-2006 à 07:00:22
Bonjour,
Une table Films
Une table Acteurs
Une table Réalisateurs
Une relation 1 à n film Acteurs
Une relation ?? film Réalisateur(s)
Cordialement
Marsh Posté le 16-12-2006 à 12:11:47
seniorpapou a écrit : Bonjour, |
Comment je réalise ma relation 1 à n entre film et acteur ? J'utilise PHPmyAdmin.
Lors de mes cours de base de donnée nous avons fait énormément d'interrogation de base de donnée avec des requêtes, mais pas baucoup de création de base de connée ou alors que sur le papier.
Merci d'avance.
Marsh Posté le 16-12-2006 à 13:11:00
Je viens de réussir a faire les relations.
Mais maintenant, si un acteur joue dans plusieurs films, dans ma table Acteur, je vais être obliger de rentrer une ligne pour chaque films jouer par un même acteur ?
Films (ID "KP", Titre, Genre, Durée, Année de production)
Acteurs (ID "KP", Nom_Acteurs, Ref_Film)
Realisateur (ID "KP", Nom_Realisateur, Ref_Film)
Dites moi si je fais erreur. D'après ce que j'ai compris, dans ma table Acteurs et dans ma table Realisateur, a chaque fois qu'il y aura un nouveau films avec les meme acteurs, je vais devoir créer une ligne suplémentaire pour chaque Acteur dans ma table acteur.
J'espere m'avoir fait bien comprendre.
Merci d'avance.
Marsh Posté le 16-12-2006 à 15:36:44
Bonsoir,
Désolé je ne connais pas du tout PHPmyAdmin seulement un peu Access
dans le cas d'Access je suis contraint de faire une table intermédiaire entre Acteur et film. Table du style : nom de la table = jouedans
les champs:
numacteur (lié au N° acteur)
film (lié au N° film)
rôle (par exemple)
une relation acteur 1--->infini vers jouedans ( N° --->numacteur)et
une relation film 1--->infini vers jouedans (N°---->film)
Je ne sais pas si le possibilités de PHP sont plus larges.
Un spécaliste pourra peut-être te répondre
Cordialement
Marsh Posté le 16-12-2006 à 16:42:57
Il serait plus simple d'avoir 4 tables :
Films (id_film, ...)
Realisateur (...)
Acteurs (id_acteur, Nom_Acteurs)
Castings (id_film, id_acteur)
Tu récupère toutes les données de ton films avec des jointures, et tu élimines les redondances.
edit: désolé, j'avais pas saisi ce qu'a expliqué seniorpapou. Je crois que c'est qu'il a voulu expliquer
Marsh Posté le 16-12-2006 à 17:36:13
Bonsoir,
pour le "plaisir", et ne pas mourir idiot, j'ai chargé easyphp, j'ai donc théoriquement PHPmyAdmin et mysql. Y a-t-il une adresse d'utilisation par l'exemple??? avec créations de jointures et formulaires de saisies modèle simplifié. J'ai cherché et pas vraiment trouvé
Merci
Cordialement
Marsh Posté le 16-12-2006 à 17:46:19
easyphp = Apache + php + mysql + phpmyadmin
Teste tes pages via http://localhost/ et administre mysql par http://localhost/phpmyadmin/
Marsh Posté le 17-12-2006 à 14:22:15
Salut,
a mon avis tu peux encore optimiser un peu en regroupant les acteurs et les realisateurs dans la meme table (ce sont tous les deux des personnes)
et dans ta table de jointure preciser l'interaction entre la personne et le film.
Film(id_film, ...)
Personne(id_personne, ...)
Casting(id_film, id_personne, activite)
Avec le champ activite qui vaut par example acteur ou realisateur (comme ca, le jour ou tu veux rajouter les producteurs, les compositeurs, ou n'importe qui d'autre tu n'as pas besoin de recreer une table specifique.
En poussant encore plus loin, tu peux creer une table activite(id_activite, nom_activite) et utiliser dans la table casting l'id_activite comme ca tu peux contraindre ton sgbd a n'accepter que des activites reconnues.
Marsh Posté le 15-12-2006 à 21:21:51
Bonsoir à tous,
J'ai besoin de votre aide pour faire une base de donnée de films. Je voudrais que cette base contienne les champs suivants : Titre, Genre, Année de production, Durée, Réalisateur, Acteurs,... Le problème c'est que certains films peuvent avoir plusieurs acteurs et/ou plusieurs réalisateurs. Je ne sais donc pas comment faire cela. J'ai essayé en créant une table films, réalisateur et acteur, mais les acteurs peuvent intervenir dans différents films et les réalisateurs peuvent en faire plusieurs.
J'aurais voulu quelques conseils pour réaliser cela.
Merci d'avance.