MCD d'une bdd

Fermé
Fab - 26 août 2011 à 12:12
 Utilisateur anonyme - 30 août 2011 à 08:13
Bonjour,

Je crée actuellement un site de musique libre de droit. (pour les jeunes artistes désireux de se faire connaitre par le biais d'un site internet).
J'ai quelque doute sur la conception de ma base de donnée...
---
(téléchargeable ici : http://ptrck.perso.sfr.fr/mcd.xls)
---
Notamment pour :
- La relation "artiste -> titre -> album".
Je l'ai créé de tel sorte pour qu'un artiste crée une musique sans pour autant que cette dernière soit contenu dans un album.
Un ami m'as conseillé de transformer cette relation de cette manière :"artiste -> album -> titre". Dans la logique "contenant => contenu".
Qu'en pensez-vous?
---
- La relation des tables de jointure "commenter" et "aimer" sont lié de la même façon entre chaque même table. Cela pose-t-il problème?
Merci d'avance.
Cordialement,
Fab.



2 réponses

Utilisateur anonyme
26 août 2011 à 12:59
Bonjour,

Le choix de lier artiste->titre->album tient la route si on considère qu'un titre peut exister sans que l'artiste ait fait un album
Si ce n'est pas le cas artiste->album->titre est plus logique

Par contre vous ne liez pas l'artiste à l'album, c'est une philosophie mais lorsque vous allez vouloir afficher l'artiste d'un album ça va sans doute être coton.

Avez-vous envisagé que plusieurs artistes peuvent participer à un titre ?

Vous n'avez pas précisé les champs de liaisons entre les données, c'est volontaire (clef secondaires) ?

Pour les commentaires, vous pouvez ajouter un champ pour préciser sur quel type de donnée repose le commentaire ou bien créer un clef particulière pour les artistes, albums et titres par exemple.
0
Bonjour neoprog67 et merci pour votre réponse.

Effectivement j'aurais surement quelques difficultés à afficher les albums des artistes avec ce MCD. Je l'ai donc revu et corrigé de la manière suivante :

une table de jointure "contenir" fais le lien entre les trois table "artiste" "titre" et "album". Cette table contiendra donc les 3 clef secondaires des 3 tables.

Pour les "commentaires" et les "j'aime" même chose.

Oui, j'avais envisagé que plusieurs artistes puissent participer à un titre.

Cela vous semble-t-il correcte?

Cordialement,
Fab
0
Utilisateur anonyme
29 août 2011 à 10:58
Je vous proposerais bien une autre structure :

TITRE
id_titre clef primaire
id_album clef secondaire
...

ALBUM
id_album clef primaire
id_groupe clef secondaire
...

GROUPE
id_groupe clef primaire
id_artiste clef secondaire
...

ARTISTE
id_artiste clef primaire
...

COMMENTAIRE
id_album clef secondaire
id_titre clef secondaire
id_groupe clef secondaire
id_artiste clef secondaire
...

J'ai un site ou globalement ça fonctionne comme ça sauf que je n'ai pas de notion d'artiste et j'ai en plus des critiques http://www.neoprog.eu
0
Je prend bonne note de vos conseils !
Dans ma base de donnée l'artiste peut aussi bien être un groupe qu'une seule personne.
Ce qui reviens, si j'adapte votre structure, à artiste->album->titre.
Comme je vous l'avais dit, je désire faire un site qui met en avant les jeunes artiste en proposant aux internautes d'écouter leurs musiques de les commenter et s'ils aiment de le notifier par un bouton "j'aime".

Comme se sont de nouveaux artistes ils n'auront pas forcement fait d'album, mais que quelque titre. C'est pourquoi ne pas faire de liaison entre artiste et titre me rend un peu perplexe.

En tous cas j'suis aller visiter votre site. Il m'a l'air sympa et les requêtes sql ont l'air de passer toute seul ;).
J'ai remarqué également en allant sur votre profils que vous n'aviez pas qu'un seul site à votre actif et que vous proposiez bien des services ;).

Un jeune débutant plein d'avenir dans le webmastering pourrait-il vous aider par télé-travail? :p

Lol, en tous cas merci pour vos réponses.
Cordialement,
Fab.
0
Utilisateur anonyme
30 août 2011 à 08:13
Pour l'instant je suis auto entrepreneur, donc je travaille forcément seul, du fait de mon statut et, pour l'instant, je n'ai pas de quoi occuper une deuxième personne, mais merci pour votre proposition
Cordialement
0