Aller au contenu

Mieux structurer ma base de donnée


fredrick

Sujets conseillés

Bonjour à tous,

J'aimerais savoir comment je pourrais structurer ma base de donnée. :blush:

Voilà, je crée un site international avec des gens qui ont chacun accès au site grâce à un code unique. C'est un site de formation. Il y a plusieurs sites (qui sont en fait des modules différents/ quand on a fini le module A on passe au module B avec des formations plus poussées. Puis au module C, etc ... ). Chaque module contient plusieurs thèmes qui contiennent chacun plusieurs sous-titres qui contiennent chacun plusieurs vidéos de formation.

Ex :

MODULE A (module ou site)

=> Ferme (titre)

=>Animaux de la ferme (sous-titre)

1)Vache (vidéo)

2)Cochon (vidéo)

3)Cheval (vidéo)

=>Ville (titre)

=>Animaux de la ville (sous-titre)

1)pigeon (vidéo)

2)souris (vidéo)

Module B

=>etc

J'aimerais savoir le nombre de fois qu'un membre a cliqué sur un lien montrant la vidéo de formation mais je ne sais pas comment faire. En fait je ne sais pas comment structurer ma base de donnée, ma table ou mes tables. Pouvez-vous m'éclaircir les idées, ça serait sympa ? Merci.

Donc je compte créer une base de donnée par pays. Et le problème est comment structurer la table de chaque pays étant donné qu'il y a plusieurs membres (membres qui ne font qu'augmenter), plusieurs modules (5 en tout) par pays, plusieurs titres, plusieurs sous-titres et plusieurs vidéos (qui vont augmenter avec le temps).

Au final, si je tape "Henri Dupont", je dois savoir qu'il a cliqué et donc visionné trois fois la vidéo sur les vaches par exemple.

Dois-je créé une table pour chaque membre ??? Dois-je insérer dans la table des variable array() ???

Merci de votre aide,

Fred

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Voici une réponse "à vue de nez".

Pour simplifier, imaginons qu'on a la configuration suivante : chaque pays propose des modules différents, et chaque module contient plusieurs vidéos ; ensuite, des utilisateurs peuvent accéder à certaines vidéos.

(Tu transposeras le concept à ta configuration précise, il suffit de comprendre l'idée).

D'abord, il te faut une table pour chacun de ces 4 éléments :

pays (liste de tous les pays disponibles)

- id

- iso

- nom

modules (liste de tous les modules disponibles, peu importe leur pays d'appartenance)

- id

- nom

- description

videos (liste de toutes les vidéos disponibles, peu importe leur module d'appartenance)

- id

- nom

- description

- fichier

utilisateurs (liste de tous les utilisateurs de l'application)

- id

- nom

- prenom

Ensuite, il te faut créer des tables pour relier les différents éléments :

Un pays proposant plusieurs modules, il te faudra une table pays_modules :

pays_modules

- pays_id

- module_id

- ordre

(Note que j'ai ajouté un champ ordre au cas où les modules proposés par un pays doivent apparaître dans un certain ordre.)

Ensuite, chaque module contient des vidéos :

modules_videos

- module_id

- video_id

- ordre

Enfin, il te faut une table pour enregistrer quel utilisateur a vu quelle vidéo, et combien de fois :

utilisateurs_stats

- utilisateur_id

- video_id

- compteur

Dès qu'un utilisateur regarde une vidéo, tu vérifies si la table utilisateurs_stats contient une ligne pour cet utilisateur et cette vidéo. Si oui, tu rajoutes 1 au champ compteur. Si non, tu crées une ligne dans cette table avec le champ compteur = 1.

J'espère que ça aide.

Vincent

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...