IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Conception BDD pour matrice


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 30
    Points
    30
    Par défaut Conception BDD pour matrice
    Bonjour,

    Je voudrais créer un système d'affinité entre utilisateurs.
    Mais je vois pas trop comment m'y prendre coté conception bdd.
    En gros il s'agit d'une matrice du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    affinite    user1     user 2   user 3
    user 1        -           50        30
    user 2        30          -         0
    user 3        100       80         -
    Quelle serait le schéma idéale coté base de donnée(mysql) pour utiliser facilement la matrice ?

    merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Je pense qu'une table User () avec une relation réflexive portant la valeur de la case ferait l'affaire
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    Merci, mais peux-tu être plus précis stp je n'ai pas le niveau pour comprendre ce que tu me propose, désolé

  4. #4
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut


    Ca te donnera des enregistrements de ce genre :

    user1, user2, 50
    user3, user1, 100
    .
    .
    .

    Ca répond à tes besoins?
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    oui mais cela risque de ne pas être très pratique a utiliser.
    En gros tu propose :

    Table user (usr_id, usr_name ...)
    Table user_affinity (usr_id_1, usr_id_2, affinity);

    Si je veux récupérer tous les users avec 50 et plus d'affinité avec mon user toto (usr_id = 1) va falloir faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT usr1.usr_name as name1,  usr2.usr_name as name2, user_affinity.affinity
    FROM user_affinity
    LEFT JOIN user as usr1 ON  user_affinity.usr_id_1 = usr1.usr_id
    LEFT JOIN  user as usr2 ON  user_affinity.usr_id_2 = usr2.usr_id
    where user_affinity.affinity > 50 AND (user_id_1 = 1 OR user_id_2 = 1)
    Ca parait pas très clean non ? et en plus quand je vais parcourir mon recordset faudra que je vérifi a chaque bouclage si le user associé au user 1 est le name1 ou le name2.

Discussions similaires

  1. Conception d'un bdd pour gérer un complexe hotelier
    Par w1Re1337 dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 26/01/2012, 13h45
  2. besoin de conseil pour une conception Bdd
    Par brouis dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/09/2011, 15h33
  3. [Conception] BDD pour billets de train
    Par hidalg007 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/01/2008, 17h38
  4. [Conception]structure de BDD pour gérer une arborescence
    Par petitours dans le forum Modélisation
    Réponses: 11
    Dernier message: 13/04/2007, 16h58
  5. [Conception] BDD & PHP, néophite à besoin d'aide pour un site
    Par Cusack dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 14/02/2006, 20h53

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