1 2 Previous Next 18 Replies Latest reply on Mar 13, 2016 7:00 AM by domtom70

    problème de modélisation

    domtom70

      Bonjour à tous

       

      J'ai un problème dans la modélisation de ma base

      Voila veut développer une solution pour gérer une agence immobilière, et comme je n'ai rien trouvé d'accessible, je me suis lancé dans le développement.

      Voici une partie de ma structure

      J'ai une table INDIVIDU ou sera rentré toutes les personnes (acquéreur, vendeur, diagnostiqueur, notaires ...)

      J'ai une table BIEN ou sera rentré les informations sur le bien

      Pour les relations cela donne :

      un individu peut être relié à plusieurs bien en qualité de propriétaire, locataire acquéreur ...

      Un bien peut être relié à plusieurs individu (Les propriétaires, les visiteurs, les diagnostiqueurs ...)

       

      J'ai donc une table intermédiaire QUALITE (en tant que propriétaire, visiteur ...)

       

      Je voudrais voir depuis la table INDIVIDU tous les biens auquel il est relié (pas de problème)

      Je voudrais voir depuis la table BIEN toutes les personnes qui sont en relation avec lui (pas de probe ou presque)

       

      Voici le presque (le problème)

      Lorsque j'ai un couple de personnes

      1/ je voudrais voir pour chaque personne les biens auquel il est relié (pas de problème)

      2/ je voudrais voir pour chaque bien, non pas les deux personnes, mais le couple c'est a dire non pas M. X et Mme Y mais M. Y - Mme Y

       

      J'ai bien pensé à une lien interne mais je ne suis pas passé doué pour cela et en plus il y a peut-être une autre façon de procéder.

       

      Si vous pouviez aider ça serait super.

      Merci d'avance

        • 1. Re: problème de modélisation
          karimhanafi

          Bonjour,

           

          Vous devez pouvoir créer des entités qui ne sont pas des individus (couple, mais aussi famille, associés, colocataires, etc.).

           

          La meilleure manière de le faire est d'avoir une entité (table dans votre ERD) qui décrit autant des individus que des groupes. En général, j'appele cette entité PARTY (PARTIE en français??? pas sûr mais bon, vous aller avoir votre propre vocabulaire). Vous devez avoir un lien plusieurs à plusieurs (donc une table supplémentaire pour la résolution de la relation).

           

          La relation à votre table BIEN et QUALITE partira de la nouvelle entité PARTY et non de INDIVIDU.

           

          À Noter que vous devez vous assurer via programmation qu'à chaque fois qu'un enregistrement est créé dans INDIVIDU, un enregistrement lié est automatiquement créé dans PARTY.

           

          EN espérant avoir pu vous aider.

          • 2. Re: problème de modélisation
            siplus

            le couple n'a rien a faire, c'est une situation particulière.

             

            Un bien immobilier peut être associé avec une compagnie, avec pere et fils, avec ... etc, pas forcément avec un couple.

             

            C'est juste de montrer les personnes / entités juridiques auxquelles le bien est associé et ne pas se fixer avec "un couple".

            • 3. Re: problème de modélisation
              domtom70

              Je suis d'accord avec toi

              La notion de couple intervient uniquement dans le sens BIEN vers INDIVIDU 

              Que je veux c'est par exemple lorsque je fais visiter un bien à M. A et Mme B, qu'ils soient mariés ou pas n'a aucune importance en soi. Par contre je ne veux pas voir dans le bien qu'il a été visité par M. A (1 enregistrement) et par Mme B (1 autre enregistrement) mais par un seul enregistrement (M. A - Mme B). Mais je veux aussi voir depuis la table individu que M. A (1 enregistrement) et par Mme B (1 autre enregistrement) ont visité le bien

              • 4. Re: problème de modélisation
                domtom70

                Ce n'est pas clair pour moi

                 

                Si je comprends bien

                1/ La table PARTY est une table intermédiaire entre BIEN et QUALITE ?

                2/ Que devient la table INDIVIDU ?

                • 5. Re: problème de modélisation
                  karimhanafi

                  Salut,

                   

                  pour schematiser, cela donnerait :

                   

                  INDIVIDU >-- = --< PARTY -- = --< QUALITE >-- = -- BIEN

                   

                  Je ne suis pas très sûr de la definition de ton entité QUALITE, car il me semble qu'elle contient autant des données qui sont des états (la propriété d'un bien par exemple) que des données qui sont des flux ( visites par exemple). Il y a une logique à eclaircir ici. Je te recommande fortement de travailler tes définitions des entités, qui est une activité extrêmement importante  modélisation. Mais tout ça est un apparté pour dire que j'ai utilisé votre entité QUALITE, mais que je pense qu'il y a quelque chose à travailler à ce niveau.

                   

                  retour à mon petit schèma : PARTY est juste une construction logique pour appréhender toute interaction avec un groupe qui est un individu ou plus qu'un individu. Donc, dans le cas de Jean et Jannine, qui sont en couple, on aura 3 enregistrements qui leurs sont relatifs : un pour Jean seul, un autre pour Jannine seule et un troisième pour Jean & Jannine. Maintenant, si Jean est venu visiter une fois seul, puis une deuxième fois avec Jannine. On va enregistrer une visite pour le PARTY lié à Jean et une visite pour le PARTY Jean & Jannine (là votre entité QUALITE pose le problème dont je parlai, on a un flux, mais on le fait rentrer dans une logique d'état ).

                   

                  En se mettant dans le contexte de INDIVIDU (donc un modèle basé sur un TO du même nom) et en regardant vers QUALITE ( donc un portail basé sur QUALITE), on va utiliser PARTY comme un prisme et si on est dans l'enregistrement de Jean, on verra 2 lignes une pour le PARTY Jean et une deuxième pour Jean & Jannette. Pour Jannette, on verra juste le second.

                   

                  De l'autre côté, en ayant un modèle basé sur BIEN et un portail de QUALITE, on verra les 2 visites : la première au nom de Jean  et la seconde au nom de Jean & Jannette.

                   

                  Pour en finir avec QUALITE, cette entité comprend, selon moi, 2 entités différentes : QUALITE pour les données d'état comme propriétaire, locataire, etc ) et INTERACTION ou autre pour les données de flux ( visites, offres et contre-offres, etc.). Dans le shèma plus haut, je l'ai utilisée comme des données de flux.

                   

                  si ce n'est pas très clair. Il me rera plaisir de te préparer un petit démo en soirée.

                  • 6. Re: problème de modélisation
                    domtom70

                    bonsoir

                     

                    je te remercie pour le temps que tu me consacre

                    et oui je pense qu'une base exemple est nécessaire pour ma compréhension, enfin espérons le

                    • 7. Re: problème de modélisation
                      karimhanafi

                      Salut,

                       

                      Je te joint le démo comme promis. Attention, ne prends pas les scripts dans ta solution, car ils sont faits à la va-vite afin d'illustrer le propos. Tu auras besoin de scripts pas mal plus robustes pour ta solution. Aussi, j'utilise dans plusieurs boutons 1 seul script step, question de faire vite, mais il faudra certainement des scripts spécifiques dans ta solution.

                       

                      Je me rend compte que je ne t'ai pas demandé la version de FM Pro avec laquelle tu travailles. Le démo utilise la v14 et donc une barre de boutons. Si tu utilises une version antérieure, tu verras un X rouge à la place. Juste naviguer avec le menu des modèles si c'est le cas. Toutes les autres choses devraient fonctionner si tu as la v13. La v12 devrait poser d'autres problèmes, mais de mémoire, je ne me rappelle plus lesquels (les boutons popover, je pense).

                       

                      Prends le temps d'y jeter un coup d’œil et reviens-moi si tu as des questions.

                       

                      Bonne soirée.

                       

                      P.S. : comme je te l'écrivais ce midi, l'entité QUALITE devrait être divisé en 2, QUALITE pour des données qui s'apparentent à des états et INTERACTION pour des données qui s'apparentent à des flux. Je n'ai pas traité l'entité QUALITE dans le démo, mais elle devrait fonctionner selon le même mode que INTERACTION.

                      • 8. Re: problème de modélisation
                        domtom70

                        Bonjour et merci

                         

                        Je récupère la base et je regarde ça

                         

                        Bon week end

                        • 9. Re: problème de modélisation
                          domtom70

                          Bonjour Karim

                           

                          J'ai commencé à regarder ta solution c'est exactement ce que je souhaitais

                          J'ai pas encore tout compris

                          Ce qui me manque c'est dans interaction lorsque je sélectionne les parties je ne trouve que les individus alors que je souhaiterais voir individu_Partie avec comme intitulé M.x et Mme Y.

                           

                          Effectivement INTERACTION gère bien des flux.

                          Ce que moi j'appelle QUALITE c'est le rapport qu'a un INDIVIDU face à un BIEN, 'INDIVIDU peut être propriétaire, locataire, diagnostiqueur, visiteur (et l'on retrouve ici INTERACTION)

                          QUALITE doit retenir que M.X est visiteur ou acquéreur d'un bien et INTERACTION doit retenir les flux de visite de M. X (ou une  une PARTIE) par rapport à un BIEN.

                           

                          Si tu peux encore e donner un coup de main ça ne serait pas de refus

                          • 10. Re: problème de modélisation
                            karimhanafi

                            Bonjour Domtom70,

                             

                            Là, c'est moi qui ne comprend pas bien . Est-ce que tu ne vois pas dans ta liste de sélection des parties la PARTIE constituée par Jean Dutronc et Amélie Labelle? Cette PARTIE est au fait, une 3ème "personne" que j'ai appelé Jean et Amélie Dutronc (on aurait pu les nommer M. et Mme Dutronc ou autre). Elle est liée aux 2 premières "personnes" via INDIVIDU_PARTIE.

                             

                            Si ta question concerne l'automatisation de la création du nom de couple (M. et Mme...), oui, cela peut être scripté, mais il faudra que tu détermines des règles de composition de nom (toujours le nom du mari ou on compose le nom des 2 pour le nom du couple, que se passe-t-il quand ce n'est pas un couple? etc...).

                             

                            Quand on clique sur "Sélectionner parties", on ouvre un portail qui montre les enregistrement de TOUTES_PARTIES, qui montre toutes les parties disponibles pour sélectionner.

                             

                            Mais, j'imagine que tout cela, tu l'as bien compris. Je pense donc que j'ai mal saisi ta question, si tu veux bien la préciser pour moi, il me fera plaisir de t'aider du mieux que je peux.

                             

                            Je te joint une capture écran de ce que moi je vois... Des fois que...

                             

                            Bonne journée.

                             

                            Karim

                            • 11. Re: problème de modélisation
                              karimhanafi

                              Oups, je me rend compte que je n'ai pas répondu à tout le message. Voici quelques réflexions que je voulais partager avec toi :

                               

                              Concernant la modélisation, je continue de penser que plusieurs entités se retrouvent, selon moi, incluses dans l'entité QUALITE et que les définitions des entités doit être travaillée.

                               

                              Personnellement et d'après nos échanges, je vois comme entités :

                               

                              - RELATION : au lieu de INDIVIDU (un acheteur ou vendre peut-il un jour s’avérer être une personne morale?). Définition : Personne physique ou morale pour laquelle nous voudrions saisir des infos.

                               

                              - PARTIE : RELATION pouvant, seule ou avec d'autres RELATIONs, avoir avec un bien un USAGE, une INTERACTION ou une TRANSACTION que nous voulons saisir (remarque : la PARTIE et la RELATION devient ainsi l'élément central de relations avec les autres entités).

                               

                              - BIEN : un bien pour lequel nous voulons saisir les données de USAGE, de INTERACTION et de TRANSACTION.

                               

                              - USAGE : lien semi-permanent ou permanent qu'a une PARTIE avec un BIEN (propriétaire, locateur, locataire, gestionnaire,etc.)

                               

                              - INTERACTION : toute activité éphémère non transactionnelle impliquant une PARTIE et un BIEN (visite, offre, contre-offre, etc.).

                               

                              - TRANSACTION : toute activité à caractère éphémère qui a des conséquences semi-permanentes ou permanentes visant le transfert de la propriété et/ou de l'usage d'un BIEN d'une PARTIE à une autre (Contrat de vente, Bail, etc.).

                               

                              Mais, bien sûr, il n'y a aucune BONNE manière de le faire et la seule personne capable de bien la faire, c'est toi. Je voulais juste te partager ma reflexion pour t'aider dans la tienne.

                               

                              Au plaisir!

                              • 12. Re: problème de modélisation
                                domtom70

                                Re,

                                 

                                je te prie de m'excuser, c'est moi qui saisissait mal dans PARTIE. tout est parfait, il ne me reste plus qu'a comprendre et à modifier ce qu'il doit l'être pour encadrer la saisie des données

                                 

                                Pour ce qui est  INTERACTION, effectivement INTERACTION gère bien des flux.

                                Ce que moi j'appelle QUALITE c'est le rapport qu'a un INDIVIDU face à un BIEN, 'INDIVIDU peut être propriétaire, locataire, diagnostiqueur, visiteur (et l'on retrouve ici INTERACTION)

                                QUALITE doit retenir que M.X est visiteur ou acquéreur d'un bien et INTERACTION doit retenir les flux de visite de M. X (ou une  une PARTIE) par rapport à un BIEN.

                                 

                                Ton modèle est-il correct avec ces nouvelles explications ?

                                • 13. Re: problème de modélisation
                                  domtom70

                                  Oups

                                   

                                  J'ai écris ma dernière remarque AVANT de voir et de lire ta dernière réponse.

                                   

                                  Le but de cette base c'est de gérer mon travail et d'en faire un historique

                                  Il faut que je connaisse les différents propriétaires, locataires, visiteurs dans le temps

                                  Il faut que je connaisse l'historique d'un BIEN, ses différents mise en vente, changement de prix, changement de propriétaire, locataires dans le temps

                                   

                                   

                                  RELATION (Ce que j'appelais INDIVIDU dans nos précédents échanges) :

                                  Ce sont des individus personne morale (société, SCI ...) ou physique

                                  Chaque enregistrement est une personne physique ou morale

                                  Chaque enregistrement peut avoir plusieurs USAGE par rapport à BIEN, il peut être propriétaire d'un bien, locataire d'un autre, notaire pour un autre, diagnostiqueur ou propriétaire bailleur, ou propriétaire avec d'autres personnes, ou acquéreur pour d'autre biens

                                   

                                  BIEN :

                                  Comme son nom l'indique

                                  Chaque bien peut être relié à plusieurs RELATION à travers USAGE je pense

                                   

                                  USAGE (ce que j'appelais QUALITE dans nos précédents échanges) :

                                  Ce sont les différents état que peut avoir une RELATION avec un BIEN ((propriétaire, locateur, locataire, gestionnaire,etc.)


                                  INTERACTION

                                  Activité impliquant un BIEN et RELATION (ou PARTIE)

                                  Ca peut être une pige (le fait de rechercher sur internet ou physiquement sur le terrain ou pas des information obtenues en parlant avec des personnes)

                                  Ca peut être une estimation de prix (qui peut se transformer en un mandat de vente)

                                  Ca peut être un mandat de vente (contrat de vente entre RELATION (ou PARTIE)) que je signe à partir d'un BIEN (qui doit me donner les RELATIONS propriétaire de ce bien)

                                  Ca peut être une visite, une offre, une contre-offre facture ou autre documents

                                  Ca peut être un appel téléphonique, un mel, un sms, un courrier


                                  Chaque INTERACTION doit être reliée à des TACHES, par exemple  pour un bon de visite création de TACHE bien définie 1/ validation rendez-vous visite avec le vendeur, 2/ validation rendez-vous visite avec le visiteur, 3/ rendez-vous visite  avec date, heure et lieu de rendez-vous, 4/ Rappel sous x jours pour contacter le visiteur pour savoir ce qu'il pense de la visite et peut-être déboucher sur une offre.


                                  TRANSACTION

                                  C'est ce que tu dis, mais pour nous, une transaction c'est la vente d'un bien

                                  Bien sur, il faut prévoir la modification de l'USAGE d'un BIEN avec RELATION (ou PARTIE)

                                   

                                  PARTIE

                                  C'est ce que tu dis

                                   

                                  Bon je pense ne rien avoir oublié.

                                  J'espère avoir été clair, mais il me semble que ton esprit est très doué pour la modélisation car m'avoir décrit tout cela simplement en le déduisant de nos échanges et sans connaitre la profession CHAPEAU (mais ça c'est pas une entité j'en suis sur tu vois je progresse)

                                   

                                  • 14. Re: problème de modélisation
                                    karimhanafi

                                    Au cas où ce n'était pas clair, je ne suis pas un grand fan de l'entité QUALITE.

                                     

                                    Blague à part : je vois bien comment tu la conçoit, mais je la trouve un peu fourre-tout et de par mon expérience, les entités fourre-tout posent toujours problème en bout de ligne.

                                     

                                    Je ne sais pas où tu en est rendu dans ton développement, mais si ton bras n'est pas trop loin dans le tordeur qui s'appelle QUALITE, je te conseille vivement une réflexion assez poussée sur cette entité (qui est plusieurs choses à la fois selon moi).

                                     

                                    Premièrement, juste un aparté sur le vocabulaire, quand tu te places sur l'entité INDIVIDU et que tu veux regarder les autres entités de ta base de données, tu as toujours besoin du prisme PARTIE. Cela veut dire que tu ne peux pas écrire "le rapport qu'a un INDIVIDU face à un bien", mais plutôt "le rapport qu'a une PARTIE face à un BIEN". J'ai l'air de pignasser, mais crois-moi, c'est super important. Car le vocabulaire va définir comment tu vas faire tes relations dans FileMaker. Si tu lies, par exemple, INDIVIDU à BIEN, comme ta phrase le suggère, tu ne pourras pas voir les interactions où l'individu en question est lié à un autre individu (PARTIE distincte).

                                     

                                    Maintenant, quand tu dis "QUALITE doit retenir que M.X est visiteur ou acquéreur d'un bien". Je pense qu'il y a une réflexion à avoir :

                                     

                                    - Supposons que Jean est marqué dans ta base de donnée comme étant un "Visiteur". Tu viens de donner une qualité intrinsèque à cette individu qui est erronée. Jean n'a pas de vocation dans la vie (de ta base de donnée) d'être un Visiteur. Jean peut en effet être un visiteur aujourd'hui, un acheteur demain, un locataire d'un autre bien le surlendemain, etc. Par contre, Jean a effectué une Visite et c'est cette donnée qu'il est important de saisir et de lier autant à une PARTIE qu'à un BIEN. D'où l'entité INTERACTION, qui enregistre tous les flux entre les entités PARTIE et BIEN qui sont de type éphémère (ça va être à toi de définir c'est quoi une INTERACTION dans ton domaine, mais je vois déjà quelques unes, comme visite, offre, contre-offre, diagnostic que tu viens de citer).

                                     

                                    - Maintenant, certaines PARTIEs peuvent avoir des qualités intrinsèques vis-à-vis d'un bien (Propriétaire, locataire, mais pas visiteur), donc tu peux garder ton entité QUALITE pour décrire cette donnée. Toutefois, personnellement, je regarderai cette entité du côté de PARTIE plutôt que du côté de BIEN. Je m'explique : quand tu définis QUALITÉ, ta réflexion me semble être du côté du BIEN. Donc, un bien peut avoir un proprétaire, un bien peut avoir un locataire, etc. C'est tout à fait vrai et ta base de donnée sera tout à fait correcte. Par contre, en faisant un petit changement de paradigme, on peut tout simple dire : une PARTIE peut faire USAGE de un ou plusieurs biens. Donc, au lieu de QUALITE, j'utiliserai une entité USAGE qui ratisse vraiment large. Ainsi quand tu seras dans le contexte de INDIVIDU (toujours avec le prisme de PARTIE), tu pourras lister dans un portail basé sur USAGE toutes les propriétés auquel l'INDIVIDU est lié et l'USAGE qu'il en fait.

                                     

                                    Finalement, ce que ton système doit également enregistrer sont les TRANSACTIONs, car c'est d'abord cela la raison d'être de ton entreprise, réaliser des transactions immobilières (et non faire faire des visites).

                                     

                                    Si cela peut t'aider à visualiser ton système, il y a un petit outil qui est une extension du navigateur (fureteur) Chrome, qui s'appelle Gliffy. Je m'en sers pour faire mes modèles de données. Mais la chose la plus importante sont les définitions. On pense tous que nous avons la même définition du mot "individu", "qualité" ou autre. Mais ce n'est pas vrai. Écris tes définitions pour chacune des entités et tu verras que tu vas les changer au fur et à mesure que ta réflexion progresse ou que tu en discutes avec d'autres personnes. Tes définitions doivent être assez larges pour couvrir toutes les utilisations possible de l'entité, mais aussi assez précises pour que tu puisses travailler avec. Les noms de tes entités vont changer en cours de route, c'est sûr et certain, mais c'est sain. La modélisation est un processus itératif.

                                     

                                    Prends le temps de bien travailler ton data model, car il y a toujours 2 choses qui jouent dans le développement du système : la logique du système ou du code. Mais quand tu commences à résoudre des problèmes de logique système avec du code, c'est là que la galère commence.

                                     

                                    Bonne modélisation

                                     

                                    Karim

                                    1 2 Previous Next