1. #1
    Membre du Club
    Inscrit en
    avril 2007
    Messages
    278
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 278
    Points : 47
    Points
    47

    Par défaut Besoin d'avis sur mon modèle de db

    Bonsoir à tous,

    Je suis entrain de coder un petit site web qui permettrai de gérer la visualisations de vidéos.

    J'ai fait une base sous mySQL et souhaiterait avoir un avis, tout en sachant que ma base sera utiliser via Entity Framework.

    J'ai 3 tables :

    -category qui va gérer les catégories des videos.
    -keyword qui va gérer les mots clés des vidéos.
    -video qui va gérer mes videos.

    La ou je sèche un peu c'est sur les différents types d'indexs à utiliser avec mySQL...et comme je vais utiliser cela avec EF, je suppose qu'il me faut quelque chose de béton.

    Voici le contenu de mes tables :

    Category :

    Nom : Category.PNG
Affichages : 52
Taille : 45,6 Ko

    Keword:

    Nom : keyword.PNG
Affichages : 50
Taille : 55,2 Ko

    Video:

    Nom : Videos.PNG
Affichages : 50
Taille : 83,6 Ko

    -> Que pensez vous de mes indexs ?

    -> Pour category, le code category est directement la clé primaire.
    -> Pour keyword, le keyword est directement la clé primaire.
    -> Pour Vidéo, je souhaite que la clé primaire soit un id unique auto incrémenté, est-ce bien correct au sein de ma config ? Etant débutant en mySQL j'ai un doute.

    J'ai une seconde question, que je poserai ensuite

    Merci par avance en tout cas

  2. #2
    Membre du Club
    Inscrit en
    avril 2007
    Messages
    278
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 278
    Points : 47
    Points
    47

    Par défaut

    Pas d'avis ?

  3. #3
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    15 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 15 182
    Points : 29 312
    Points
    29 312
    Billets dans le blog
    4

    Par défaut

    Du VARCHAR en clé primaire, déjà, c'est une mauvaise idée !
    Il vaut beaucoup mieux avoir une clé primaire de type entier et auto-incrémentée, sauf pour les tables associatives où la clé primaire est composée des clés étrangères référençant les clés primaires des tables impliquées dans l'association.

    Je suppose qu'une vidéo peut être associée à plusieurs catégories et à plusieurs keywords ? Alors les keywords et les catégories ne doivent pas être dans la table des vidéos. Il faut faire une association entre vidéo et keywords d'une part et une autre entre vidéo et catégorie. Donc il faut deux tables associatives.

    Commencez par faire un bon modèle de données ; les index vendront ensuite.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre du Club
    Inscrit en
    avril 2007
    Messages
    278
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 278
    Points : 47
    Points
    47

    Par défaut

    Bonsoir et merci de ta réponse.
    En effet, une vidéo peut avoir plusieurs catégories et keywords, je pensais donc stocker dans la table video un varchar contenant les keywords séparés par ";" et idem pour les les catégories.

    En gros ce que tu me conseilles ce serait de faire une tables "VideoKeyword" qui contiendrait l'ID primaire de la vidéo avec l'ID du keywords, idem pour les catégories, une table "VideoCategory" qui contiendrait l'ID primaire de la vidéo avec l'ID de la catégorie. Dans ces cas la, la clé primaire de ces tables serait encore un autre ID unique ou pas ?

    Exemple :

    Table : VideoKeyword :

    -IdVideo (>ID de la video)
    -IdKeyword
    -IDUNIQUE ( -> Id primaire...est-ce nécéssaire) ?

    Merci encore

  5. #5
    Membre du Club
    Inscrit en
    avril 2007
    Messages
    278
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 278
    Points : 47
    Points
    47

    Par défaut

    Voila ce que je viens de faire :

    Nom : Capture.PNG
Affichages : 19
Taille : 46,9 Ko

    Une table CATEGORIES qui a un champs idCategory et idVideo, ces deux ID permettent de faire le liens avec la table Category et Video.
    J'ai créer un index primaire composé des deux champs. Est-ce cela que tu entendais pas table d'association ?

  6. #6
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    15 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 15 182
    Points : 29 312
    Points
    29 312
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Nixeus Voir le message
    En effet, une vidéo peut avoir plusieurs catégories et keywords, je pensais donc stocker dans la table video un varchar contenant les keywords séparés par ";" et idem pour les les catégories.
    Très mauvaise solution qui n'est exploitable que par un programme externe et qui ne sera jamais aussi performante qu'une table associative si le volume de données est important.

    En gros ce que tu me conseilles ce serait de faire une tables "VideoKeyword" qui contiendrait l'ID primaire de la vidéo avec l'ID du keywords, idem pour les catégories, une table "VideoCategory" qui contiendrait l'ID primaire de la vidéo avec l'ID de la catégorie.
    Oui, c'est exactement ça.

    Dans ces cas la, la clé primaire de ces tables serait encore un autre ID unique ou pas ?
    Non, c'est inutile. À moins que Entity Framework soit un de ces framework mal foutus qui demande obligatoirement un identifiant entier pour toutes les classes issues des tables de la BDD.

    Voila ce que je viens de faire :
    Une table CATEGORIES qui a un champs idCategory et idVideo, ces deux ID permettent de faire le liens avec la table Category et Video.
    J'ai créer un index primaire composé des deux champs. Est-ce cela que tu entendais pas table d'association ?
    C'est exactement ça.
    Un petit bémol : je n'aurais pas appelé la table ainsi puisque vous avez déjà une table qui stocke les différentes catégories. Ça peut prêter à confusion.
    Puisque c'est une table associative entre les vidéos et les catégories, vous pourriez l'appeler plus significativement "video_categorie", par exemple.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre du Club
    Inscrit en
    avril 2007
    Messages
    278
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 278
    Points : 47
    Points
    47

    Par défaut

    Merci bcp de ta réponse, je vais tester tout ça dans Entity framework

Discussions similaires

  1. Besoin d'avis sur mon CV et ma lettre de motivation
    Par houpe_loic dans le forum CV
    Réponses: 1
    Dernier message: 05/10/2014, 21h29
  2. Réponses: 9
    Dernier message: 05/04/2010, 23h12
  3. Besoin d'avis sur mon rapport hijackthis
    Par gkhan dans le forum Sécurité
    Réponses: 16
    Dernier message: 29/05/2008, 20h57
  4. Besoin d'avis sur mon formulaire
    Par Olivier Regnier dans le forum Web
    Réponses: 2
    Dernier message: 16/11/2007, 10h46
  5. Besoin d'avis sur mon thread
    Par SanNash dans le forum APIs
    Réponses: 1
    Dernier message: 20/06/2006, 12h44

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