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 : 21
    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
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 968
    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 : 2 968
    Points : 6 533
    Points
    6 533
    Billets dans le blog
    1

    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 SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 256
    Points : 39 959
    Points
    39 959
    Billets dans le blog
    1

    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...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  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 : 21
    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
    14 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    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 : 14 985
    Points : 28 829
    Points
    28 829
    Billets dans le blog
    4

    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, 13h23
  2. Réponses: 0
    Dernier message: 26/07/2016, 10h52
  3. [Creation Messagerie] Base de donnée ou serveur Mail
    Par Gwen38 dans le forum PHP & MySQL
    Réponses: 2
    Dernier message: 24/05/2007, 14h39
  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, 16h16
  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, 12h18

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