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 :

Messagerie instantanée


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Messagerie instantanée
    Bonjour a tous!
    Je suis à la réalisation d'une application de messagerie instantanée, je conçois ma base de données, voici comme son MOD est représenté.
    ◆User(0, n) Discuter (0, n) User
    ◆User(0, n) Appeler (0, n) User
    ◆User(0, n) Créer (1, 1) Groupe
    ◆User(0, n) Être membre (1, n) Groupe
    ◆Typeappel(1, n) Suivre (0, n) Appeler
    ◆Typemembre(0, n) Avoir (0, n) ÊtreMembre


    MLD se représente comme suite:
    ◆User (#Iduser int auto-incremente , Codeconfirmation int(10) not null, Nomcomplet varchar(30) not null, Num_tel varchar(20) not null unique, Statut varchar (70), Photoprofil binary, Dateinscri date)
    ◆Duscuter(Idenvoi int references User(Iduser), Idereçu int references User(Iduser),Dateduscuter datetime, Msg text, Datemsg datestamp);
    ◆Typeappel (#Idtypeappel int auto-incremente, typeappel varchar(10), format binary);
    ◆Appeler ( Appeler int references User(Iduser), Appelant int references User(Iduser), Typeappel int references Typeappel(Idtypeappel), Dateappeler datetime, Duree time, audioappel binary);
    ◆Typemembre (#Idtype int auto-incremente, Nomtype varchar(30));
    ◆Groupe (#Idgroupe int auto-incremente, nomgroupe varchar(30) not null, Imagegroupe binary, Createur int references User(Iduser), Datecreation datetime);
    ◆Membresgroup ( Groupe int references Groupe(Idgroupe),
    Membre int references User(Iduser),
    Typemembre int references Typemembre (Idtype));


    Cette application serait purement comme Whatsapp...
    Au niveau de la discussion entre membres du groupe, Je suis un peu bloqué, sur cet niveau...
    Aidez-moi svp!
    Merci, en attente des vos réponses

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Il est difficile de visualiser l'ensemble de votre MCD ainsi présenté sous forme littérale. Vous devriez le réaliser avec un outil de modélisation et présenter votre ébauche dans le forum consacré aux MCD, MLD et MPD, forum qui se trouve ici : https://www.developpez.net/forums/f6...sation/schema/

    Non seulement ce sera plus simple à comprendre, mais en plus vous bénéficierez des contrôles automatiques du logiciel et le DDL sera généré automatiquement par le logiciel, en fonction du choix du SGBD
    Que des avantages donc

    Si vous n'avez pas de logiciel de modélisation, il en existe plusieurs gratuits que vous pourrez télécharger

    Attention : si vous envisagez l'utilisation de MySQL, l'outil WorkBensh ne permet pas la modélisation conceptuelle, c'est d'ailleurs une grosse lacune, source de bien des erreurs

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    ◆User(0, n) Discuter (0, n) User
    ◆User(0, n) Appeler (0, n) User

    Ceci peut se résumer à un :
    ◆User(0, n) Action (type action : Discuter, Appeler ...) (0, n) User

    Ces cardinalités sont à priori fausses :
    ◆Typeappel(1, n) Suivre (0, n) Appeler
    ◆Typemembre(0, n) Avoir (0, n) ÊtreMembre

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Sgl pro, vous pouvez m'aider a la vraie modélisation svp, merci

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    ◆User(0, n) Discuter (0, n) User
    ◆User(0, n) Appeler (0, n) User
    ◆User(0, n) Créer (1, 1) Groupe
    ◆User(0, n) Être membre (1, n) Groupe
    ◆Typeappel(1, n) Suivre (0, n) Appeler
    ◆Typemembre(0, n) Avoir (0, n) ÊtreMembre
    1) D'une manière générale, nommez vos entités types avec un nom (User, Groupe, Typeappel, Typemembre : OK ; Appeler, Êtremembre : KO )

    2) N'utilisez pas de caractères diacritiques : Être membre => Etre_membre
    Car si vous utilisez un logiciel de modélisation, celui-ci pourra générer le code de votre base de données en utilisant cette appellation pour les tables et là ça devient la catastrophe.

    3) Écrivez vos règles de gestion pour modéliser plus facilement.

    4) Une association ne se fait qu'entre entités types, pas entre associations.
    Si vous constatez que vous avez besoin de ça, c'est soit que vous avez en fait une association ternaire, soit que vous devez transformer l'association à partir de laquelle vous tirez une branche d'une autre association en ce que j'appelle une "entité-type associative".

    Dans votre cas, je pense que ceci :
    User(0, n) Être membre (1, n) Groupe
    Typemembre(0, n) Avoir (0, n) ÊtreMembre

    ... est en fait une association ternaire :
    User -0,n-----------appartenir----1,n Groupe
    Type_Membre -0,n----|

    Mais alors un membre peut appartenir plusieurs fois au même groupe. Est-ce ce que vous voulez ?

    Si la réponse est non, alors il faut créer une entité type associative :
    User -0,n----être----(1,1)- Membre -(1,1)----appartenir----1,n- Groupe
    Type_Membre -0,n----typer----|

    Les cardinalités entre parenthèses indiquent une identification relative et signifient que l'entité type Membre n'a pas d'identifiant propre. La table issue de cette entité type aura pour clé primaire le couple de clés étrangères référençant User et Groupe. :
    User (Iduser, ...)
    Groupe (Idgroupe, ...)
    Type_Membre (IdTypemembre, ...)
    Membre (Iduser, Idgroupe, IdTypemembre, ...)

    Clés primaires soulignées, clés étrangères en italique.

    5) Même chose sur Typeappel(1, n) Suivre (0, n) Appeler qui ne va pas.
    Je vous laisse modéliser ça vous-même en reprenant ce que je vous ai expliqué ci-dessus.

    Pour modéliser graphiquement votre MCD, vous pouvez utiliser par exemple JMerise, développé par un contributeur de Developpez.com.
    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 !

Discussions similaires

  1. Assistant Configuration de la messagerie de base de données
    Par 69Pierre dans le forum Administration
    Réponses: 4
    Dernier message: 14/06/2017, 14h23
  2. Réponses: 0
    Dernier message: 26/07/2016, 11h52
  3. [MySQL] [Creation Messagerie] Base de donnée ou serveur Mail
    Par Gwen38 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2007, 15h39
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 17h16
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 13h18

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