Database
 sql >> Base de données >  >> RDS >> Database

Modélisation d'une structure de données de base pour gérer les utilisateurs, les threads et les publications

Un forum de discussion en ligne est un site où les gens peut tenir des conversations sous forme de messages postés . Les forums de discussion permettent aux conversations d'avoir lieu lorsque les gens ne sont pas en ligne, et les messages peuvent être temporairement archivés. De plus, selon la configuration du forum, un message peut devoir être approuvé par un modérateur avant d'être visible par les autres utilisateurs. Les forums ont un ensemble spécifique de termes, par exemple, une conversation unique est généralement appelée « fil de discussion ». Les discussions peuvent être répondues par autant de personnes que vous le souhaitez. La plupart des forums exigent que les utilisateurs s'inscrivent puis se connectent pour poster des messages. Cependant, sur la plupart des forums, les utilisateurs n'ont pas besoin de se connecter pour lire les messages existants.

Ce sont des exigences courantes pour un forum de site Web , alors travaillons à créer un modèle de base de données en commençant par une configuration de forum de base que nous pourrons étendre plus tard.

Entités

Comme mentionné précédemment, les gens tiennent des conversations sous la forme de messages postés qui sont regroupés dans des conversations. La base de données doit donc prendre en charge les informations sur les personnes ou utilisateurs , conversations ou threads et messages ou messages .

Pour le forum en ligne, les utilisateurs devront être créés - il peut être nécessaire d'autoriser les utilisateurs à modifier leurs détails après leur création, mais il n'est probablement pas nécessaire d'autoriser la suppression des utilisateurs. Les utilisateurs créeront des conversations, ou fils de discussion, généralement en publiant un premier message sur le forum, plutôt qu'en créant explicitement une conversation, mais il peut être nécessaire de prendre en charge les deux possibilités. Les discussions contiendront des messages créés par les utilisateurs.

Fonctionnalité

La publication de messages est la fonctionnalité principale du forum en ligne . Les utilisateurs doivent-ils pouvoir modifier les messages après leur publication ? Les utilisateurs doivent-ils pouvoir supprimer des messages après les avoir publiés ? La réponse aux deux questions est probablement oui.

Relations

Les messages sont liés à des fils de discussion et les messages sont créés par les utilisateurs, il y aura donc une relation définie entre les utilisateurs et les messages. Les discussions sont créées par les utilisateurs, vous devez donc y stocker une relation (par exemple, si un utilisateur est banni du forum, vous souhaiterez peut-être supprimer toutes les discussions et tous les messages créés par cet utilisateur).

Maintenant que vous connaissez les entités et relations , vous êtes prêt à créer un modèle de la base de données, et cela ne devrait prendre que quelques minutes. C'est là que les outils deviennent utiles.

Modèle de base de données

Jetons un coup d'œil à Vertabelo pour continuer le forum de discussion en ligne.

Créez un modèle pour le forum en ligne et commencez à ajouter les entités représentant les utilisateurs, les fils de discussion et les publications. Vertabelo vous rappellera que vous devez définir des clés primaires pour chaque table ; Je recommande d'utiliser id colonnes car cela vous donnera plus de flexibilité potentielle (et ne vous liera pas au nom de l'utilisateur comme clé primaire ou à d'autres pièges). Ensuite, ajoutez les relations que nous avons déjà décrit précédemment. J'ai ajouté un mot de passe (sous forme hachée) pour que l'utilisateur contrôle la connexion des utilisateurs.

Maintenant, vous allez vous retrouver avec quelque chose qui ressemble à peu près à ceci :




Vous verrez qu'il y a des horodatages avec la date/heure de création de chaque ligne, afin que ces informations puissent être affichées sur le forum ("Utilisateur depuis le 2 février 2014", "Date de publication :24 décembre 2014", etc. ).

Si vous allez avoir un modéré forum de discussion en ligne dans lequel les messages doivent être approuvés par un modérateur avant d'être visibles par les autres utilisateurs, vous devez alors ajouter un élément d'état aux fils de discussion et aux messages afin que l'application puisse décider si les fils de discussion et les messages associés ont été examinés et approuvés. Un statut permettrait également aux autres utilisateurs de marquer les fils de discussion et les messages comme spam ou inappropriés.

J'espère que vous pouvez déjà commencer à penser à des améliorations. Par exemple, si vous avez besoin de détails formels sur l'utilisateur, au lieu d'un seul champ "nom", vous voudrez peut-être son prénom, son nom et son nom d'utilisateur ou surnom. Et un message peut avoir un sujet en plus du contenu, mais je pense que le sujet du message est lié au fil de discussion, ce qui n'est peut-être pas nécessaire.

  Partie suivante »