Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/01/2006, à 12:30

hector

débutant en mysql

J'essaie de me faire une petite base de données pour me faire la main, j'ai installé phpmyadmin sous ma breezy , et créé 2 tables mais ai un probleme avec mes relations....
en fait j'essaie de me faire une dvdtheque avec 2 tables: une de films et une d'acteurs: l'idée est que à chaque film peut correspondre plusieurs acteurs, et inversement à chaque acteur peut correspondre plusieurs films. J'imagine que ce cas est archi simple : mais comment feriez vous? roll
Merci

Hors ligne

#2 Le 25/01/2006, à 12:43

Nim

Re : débutant en mysql

En ajoutant une troisième table de correspondance acteur films.
C'est en effet une chose de base. Pour te former un peu, je te conseillerai de lire ça par exemple : http://sqlpro.developpez.com/

Hors ligne

#3 Le 25/01/2006, à 12:46

guil

Re : débutant en mysql

salut,

tu peux créer une table acteur avec un champ id et une table film avec un champ actorList qui contient une list d'id correspondant aux acteurs.

Tu peux également créer une troisiéme table actorFilm ou tu met (id, film, acteur) et que tu remplis avec les id d'acteurs et films ainsi si ton acteur 2 et 3 joue dans le film 4 tu auras dans actorFilm :
id  film actor
1   4    2
2   4    3

il y a encore plein d'autres solution.

Hors ligne

#4 Le 25/01/2006, à 12:47

thom

Re : débutant en mysql

L'idée, c'est que tu donnes un id a chacun de tes films (dans la table films), un id a chaque acteur (dans la table acteur) et puis tu fais une autre table dans laquelle tu auras 2 champs, id_film et id_acteur pour faire la relation entre les 2... Il peut y avoir plusieurs entrée dans cette table si il y a plusieurs acteur pour un film...


-> Ubuntu on a Sony Vaio VNG-FS115B
-> Wificonfig is a little script aimed to ease the switching between networks, for people who have 2 network cards : a wired one and a wireless one.

Hors ligne

#5 Le 25/01/2006, à 13:21

hector

Re : débutant en mysql

Merci pour vos solutions big_smile et liens.
spontanément je choisirais plutot la solution consistant a mettre un champ liste d'identifiants ds le tableau film, plutot que rajouter un 3eme tableau. a moins que vous me disiez qu il est plus interessant de faire ce 3eme tableau pour une raison qui m'échappe...

Hors ligne

#6 Le 25/01/2006, à 13:26

guil

Re : débutant en mysql

le troisiéme tableau est plus pratique quand tu veux ensuite faire une recherche filtrer par acteur ou film. (mais c'est aussi possible avec la liste)

Hors ligne

#7 Le 25/01/2006, à 13:41

goodluck

Re : débutant en mysql

Tu vas donc avoir un champ liste des films dans la table acteur ET un champ liste des acteurs dans la table des films.
Bon courage quand tu vas détruire un film !


Amicalement, Gerard ;)
http://counter.li.org/cgi-bin/certificate.cgi/302199
http://www.worldcommunitygrid.org/

Hors ligne

#8 Le 25/01/2006, à 15:38

Nim

Re : débutant en mysql

De plus en terme de performance, l'utilisation de liste est beaucoup moins interessante que une troisième table (assez bien optimisée pour peu que tu utilise des jointures en accès).
La solution à base de liste est fortement déconseillée (je serai pas loin de dire à proscrire ...).

Hors ligne

#9 Le 25/01/2006, à 16:30

goodluck

Re : débutant en mysql

(je serai pas loin de dire à proscrire ...).
J'avais pas osé ! smile


Amicalement, Gerard ;)
http://counter.li.org/cgi-bin/certificate.cgi/302199
http://www.worldcommunitygrid.org/

Hors ligne

#10 Le 26/01/2006, à 12:57

hector

Re : débutant en mysql

va pour la 3ème table  !
Et merci smile

Hors ligne