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

Objective-C Discussion :

[Core Data] Quel choix de modélisation pour être dynamique


Sujet :

Objective-C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable Pilotage
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable Pilotage

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [Core Data] Quel choix de modélisation pour être dynamique
    Bonjour,

    Voici ma problématique :
    Mon application stocke des valeurs, chacune de ces valeurs est rattachée à un indicateur, par exemple :
    - l'indicateur chiffre d'affaires peut être relié à 10k€, 20k€, 50k€...

    Jusque là tout va bien, j'ai :
    - une table Valeur avec un attribut valeur et une liaison to one indicateur
    - une table Indicateur avec un attribut indicateur et une liaison to many valeurs

    Là où cela se complique c'est quand je dois intégrer des axes (ou segment, on peut nommer cela de différentes manières), par exemple :
    - l'indicateur chiffre d'affaires est en fait découpé en 2 :
    --- chiffre d'affaires magasin nord : 8k€, 10k€, 40k€
    --- chiffre d'affaire magasin sud : 2k€, 10k€, 10k€
    --- le total est bien celui de l'exemple cité plus haut

    Vous me direz, facile : il suffit de créer une table magasin
    Mais le problème c'est que je ne connais pas à l'avance tous les axes : c'est variable d'un indicateur à l'autre et non défini au départ

    Par exemple, toujours pour le chiffre d'affaires, il peut y avoir le pays, le rayon du magasin, le produit... bref tout cela est défini par l'utilisateur et doit ensuite pouvoir faire l'objet de restitution de type :
    - le chiffre d'affaire pour le magasin 1 de la produit A
    - le chiffre d'affaire pour la produit B pour le magasin 1 et 2
    -...

    j'ai beau essayer de chercher je n'arrive pas à trouver une solution pertinante.
    J'ai pensé à faire un table Axe avec un attribut libelle axe et une relation recursive mais du coup, je suis sur une relation to many - to many (et non pas to many - to one comme pour un organigramme par exemple)

    Merci de votre aide

    PS : j'ai placé cette demande dans Objective - C car la solution est liée spécifiquement aux caractéristiques et limitations de Core Data (on est dans le SQL sans y être)

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par gregfreemind Voir le message
    c'est variable d'un indicateur à l'autre et non défini au départ
    Alors une table Segment avec seulement 2 clefs étrangères Valeur et Indicateur, peut-être en couple unique

    PS: c'est une réponse SQL et pas forcément CoreData

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable Pilotage
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable Pilotage

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Sans doute me suis-je mal exprimé (ou alors je ne vois pas bien comment résoudre mon problème avec votre réponse)
    Voici un exemple, format fichier plat de ce que je peux être amené à intégrer dans la base :

    VILLE MAGASIN RAYON INDICATEUR VALEUR
    Paris Mag1 Fruits Chiffre d'affaire 100€
    Paris Mag2 Fruits chiffre d'affaire 200€
    Lyon Mag3 Legumes chiffre d'affaire 400€
    Lyon Mag3 Fruits chiffre d'affaire 150€

    Les axes (ou segments) ici sont Ville, Magasin et Rayon

    Et, dans ce même modèle devoir enregistrer :

    ENTREPOT RAYON INDICATEUR VALEUR
    Sud Fruits Sotck 1 000
    Nord Fruits Sotck 2 000
    Nord Legumes Sotck 1 000

    Ici les axes sont Entrepot et Rayon

    En gros je vais avoir une infinité de possibilités d'axes.

    Si je reprends votre proposition, je vais certe pouvoir associer un couple valeur-indicateur a plusieurs axes mais sans aucun lien entre les axes :
    - si je veux toutes les valeurs pour l'indicateur chiffre d'affaire pour du MAGASIN = Mag1 : pas de soucis
    - si je veux toutes les valeurs pour l'indicateur chiffre d'affaire pour les rayons Fruits de la ville Paris : ça ne marche pas car :
    ------ si je fais SEGMENT = FRUIT AND SEGMENT = PARIS : forcement ça marche pas (0 lignes)
    ------ si je fais SEGMENT = FRUIT OR SEGMENT = PARIS : ça ne marche pas non plus car il va me sortir les lignes voulues mais aussi la ligne avec le rayon fruits de la ville de Lyon (3 lignes)

    Qu'en pensez-vous ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Responsable Pilotage
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable Pilotage

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Reflexion faite, je pense avoir trouvé à partir de votre proposition :
    - je fais un select avec SEGMENT = FRUIT OR SEGMENT = PARIS, je ne remène pas le segment dans le résultat de la requête mais fais un COUNT sur SEGMENT et un GROUP BY sur les champs indicateur et valeur, si le COUNT me retourne 2 je garde la ligne, sinon je la rejète.

    Du coup si j'ai un 3e critère je garde les lignes avec un COUNT à 3, etc...

    Je vais tester cela en réel, mais à priori ça va marcher
    Merci de votre aide.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Parce que ta valeur est composée

    Je ne suis pas spécialiste SQL tant que cela mais en gros il faudrait faire une truc comme cela, valide 1-2-3ième formes normales

    table VILLE (id_ville, ville)
    table MAGASIN (id_magasin, magasin)
    table ENTREPOT (id_entrepot, entrepot)
    table RAYON (id_rayon, rayon) // On mélange les rayons ou alors faire 2 tables
    table INDICATEUR (id_indicateur, indicateur) // On mélange les indicateurs ou alors faire 2 tables
    table VALEUR (id_valeur, valeur) // On mélange les valeurs ou alors faire 2 tables

    table SEGMENT_1 (id_ville, id_magasin, id_rayon, id_indicateur, id_valeur)
    table SEGMENT_2 (id_entrepot, id_rayon, id_indicateur, id_valeur)


    D'après l'exemple l'indicateur du segment 1 est toujours "chiffre d'affaire" et celui du segment 2 "Stock': donc on peut supprimer la table INDICATEUR.

    Ou éventuellement on peut faire une table INDICATEUR (id_indicateur, indicateur, id_valeur)
    Avec
    table SEGMENT_1 (id_ville, id_magasin, id_rayon, id_indicateur)
    table SEGMENT_2 (id_entrepot, id_rayon, id_indicateur)


    Par contre les jointures vont faire mal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. Quel choix de CMS pour un site?
    Par ned-flanders dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 26/09/2012, 16h47
  3. Réponses: 4
    Dernier message: 16/03/2012, 18h08
  4. Choix de modélisation pour projet WinDev
    Par Shatter dans le forum Gestion de projet
    Réponses: 2
    Dernier message: 27/10/2009, 13h38
  5. Quel choix d'Editeur pour des Procédures Stockées ?
    Par Péchereau dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/02/2007, 08h57

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