


Conception de base de données de fonctions de base de messages privés
Cet article analyse la mise en œuvre des fonctions de base des messages privés à travers le niveau de la base de données.
Exigences du projet : Fonction de message privé, après avoir envoyé un message privé à l'autre partie, la liste des personnes qui ont envoyé ou reçu le message sera affichée sur ma page de liste de messages privés. Chaque enregistrement de la liste sera uniquement affiché. afficher le dernier message de la conversation. Cliquez sur n'importe quel élément de la liste pour accéder à la page des détails de la conversation par message, où les détails de la conversation sont affichés dans l'ordre inverse. En même temps, vous pouvez supprimer des conversations sur ces deux pages. La page de liste de messages privés supprime toutes les conversations avec l'autre partie et la page de détails des messages privés supprime une certaine conversation. Les enregistrements de conversation sont supprimés unilatéralement sans affecter la visualisation par l'autre partie. .
Environnement logiciel : mysql
Cela dit, en fait, il n'y a que quelques points importants en résumé. Premièrement, chaque enregistrement de la liste de messages privés n'affiche que le dernier enregistrement, et. deuxièmement, suppression unilatérale de l'enregistrement de la conversation sans affecter le visionnage de l'autre partie. Accédez d’abord au tableau de données, puis expliquez-le un par un.
CREATE TABLE `private_message` ( `id` bigint(20) NOT NULL auto_increment COMMENT '主键Id', `user_id` bigint(20) NOT NULL COMMENT '发送者Id', `friend_id` bigint(20) NOT NULL COMMENT '接受者Id', `sender_id` bigint(20) NOT NULL COMMENT '发送者id', `receiver_id` bigint(20) NOT NULL COMMENT '接受者Id', `message_type` tinyint(4) NOT NULL COMMENT '消息类型,1:普通消息 2:系统消息', `message_content` varchar(500) NOT NULL COMMENT '消息内容', `send_time` datetime NOT NULL COMMENT '消息发送时间', `status` tinyint(4) NOT NULL default '1' COMMENT '消息状态 1:未读 2:已读 3:删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;123456789101112
Créez une table private_message, description du champ :
id:主键,自增长 user_id: 发送者id,非真实发送者id friend_id: 接受者id,非真实接受者id sender_id:发送者id,真实的发送者id receiver_id:接受者id,真实的接受者id message_type:消息类型,1:普通消息 2:系统消息,区分消息列表,可以发送不同类型的消息内容 message_content:消息内容 send_time:消息发送时间 status:消息状态 1:未读 2:已读 3:删除,标记不同消息状态,可以实现统计未读消息数,逻辑删除用户恢复等
Tout le monde devrait être déprimé après avoir vu cela. Comment obtenir deux identifiants d'expéditeur et de destinataire ?
Ici, nous considérons que la suppression unilatérale des enregistrements n'affectera pas la fonction de visualisation de l'autre partie, nous devons donc ici insérer deux données avec le même contenu lors de l'envoi d'un message privé, mais nous devons faire quelques astuces sur user_id etfriend_id. lorsque les données sont insérées deux fois, les user_id etfriend_id des deuxièmes données insérées sont échangés avec les premières données insérées. C'est-à-dire :
INSERT INTO `private_message` VALUES ('1', '121', '127', '121', '127', '1', 'hello word', '2015-09-09 10:25:43', '2');INSERT INTO `private_message` VALUES ('2', '127', '121', '121', '127', '1', 'hello word', '2015-09-09 10:26:41', '1');INSERT INTO `private_message` VALUES ('3', '127', '121', '127', '121', '1', '你是程序猿吗?', '2015-09-11 10:30:16', '2');INSERT INTO `private_message` VALUES ('4', '121', '127', '127', '121', '1', '你是程序猿吗?', '2015-09-11 10:30:59', '2');1234
De cette façon, nos besoins peuvent être satisfaits. Les premier et quatrième enregistrements sont destinés aux utilisateurs 121, et les deuxième et troisième enregistrements sont destinés à 127. Lorsque 121 supprime le premier ou le quatrième enregistrement, cela n'affectera certainement pas la visualisation par 127 du deuxième enregistrement. ! ! !
D'accord, vous pouvez désormais vous occuper d'autres exigences fonctionnelles.
1. Ma liste de messages privés
SELECT p.id, COUNT(p.id) AS message_count,p.user_id,p.friend_id,p.sender_id,p.receiver_id,p.send_time,p.message_content, u.`name` AS receiver_name,u.img_url AS receiver_image FROM (SELECT * FROM private_message ORDER BY id DESC) p INNER JOIN user u on u.id=friend_id WHERE p.user_id=121 and p.`status` !=3 GROUP BY p.friend_id ORDER BY p.id DESC limit 0,101
2. Détails de ma liste de messages privés
SELECT p.id,p.message_content,p.sender_id,p.receiver_id,p.send_time,u.`name` AS sender_name,u.img_url AS sender_image,uu.`name` AS receiver_name FROM private_message p INNER JOIN user u on u.id=p.sender_id INNER JOIN user uu on uu.id=p.friend_id WHERE p.user_id=121 and p.friend_id=127 and p.`status` !=3 ORDER BY p.id DESC limit 0,101
3. Supprimer l'intégralité de la conversation sur ma page de liste de messages privés
UPDATE private_message SETstatus=3 WHERE user_id=121 AND friend_id=1271
4. Supprimer une seule conversation des détails de ma liste de messages privés
UPDATE private_message SET status=3 WHERE id=11
5. Obtenez le nombre de messages non lus de l'utilisateur
SELECT COUNT(*) FROM private_message WHERE user_id=121 AND receiver_id=127 AND status=11
Bien sûr, vous. peut également mettre à jour les messages non lus comme lus, vous pouvez récupérer les utilisateurs supprimés de la corbeille, envoyer des messages système, etc. C'est, je suis sûr que certains étudiants diront, que les données de ce tableau sont redondantes. Chaque enregistrement est inséré deux fois s'il y a beaucoup de contenu ou lors de l'envoi de messages système, les données du tableau sont trop volumineuses. uniquement pour les petites fonctions de messages privés. C'est certainement différent des sites Web de réseaux sociaux à grande échelle, mais nous pouvons également diviser le contenu et créer une nouvelle table de contenu. Ici, l'ID peut être associé pour réduire la redondance des données. De plus, cette conception n’implique pas d’accès simultané élevé ! Lorsqu’il s’agit de haute concurrence, cela nécessite des conceptions et des méthodes plus complexes pour le résoudre !
Lecture connexe :
code source de la fonction de chat en tête-à-tête php chat
Comment rendre l'utilisation des index de bases de données plus efficace ?
Étapes générales et exemples de conception d'une base de données
Ce qui précède représente l'intégralité du contenu de cet article si vous. Si vous avez des questions, n'hésitez pas à nous contacter. Laissez un message dans la zone commentaire !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Ouvrez l'application Douyin, cliquez sur [Message] en bas de l'interface, puis cliquez sur l'entrée de conversation de chat qui doit être supprimée. 2. Appuyez longuement sur n'importe quel enregistrement de discussion, cliquez sur [Sélection multiple] et vérifiez les enregistrements de discussion que vous souhaitez supprimer. 3. Cliquez sur le bouton [Supprimer] dans le coin inférieur droit et sélectionnez [Confirmer la suppression] dans la fenêtre contextuelle pour supprimer définitivement ces enregistrements.

1. Lorsque les utilisateurs suppriment les enregistrements de discussion par message privé de Douyin, ces enregistrements ne peuvent généralement pas être récupérés car il s'agit d'une suppression permanente. 2. Cependant, les utilisateurs peuvent contacter le responsable de Douyin et essayer de communiquer pour restaurer l'historique des discussions. 3. Ouvrez l'application Douyin, cliquez sur les trois barres horizontales dans le coin supérieur droit de l'interface [Moi], sélectionnez [Paramètres], faites glisser vers le bas et cliquez sur [À propos de Douyin]. 4. Recherchez et appelez la [Hotline du service client], ou contactez les responsables de Douyin via l'e-mail officiel pour en savoir plus sur la possibilité de restaurer les enregistrements de discussion.

Le langage Go est un langage de programmation efficace, concis et facile à apprendre. Il est privilégié par les développeurs en raison de ses avantages en programmation simultanée et en programmation réseau. Dans le développement réel, les opérations de base de données font partie intégrante. Cet article explique comment utiliser le langage Go pour implémenter les opérations d'ajout, de suppression, de modification et de requête de base de données. Dans le langage Go, nous utilisons généralement des bibliothèques tierces pour faire fonctionner les bases de données, telles que les packages SQL couramment utilisés, gorm, etc. Ici, nous prenons le package SQL comme exemple pour présenter comment implémenter les opérations d'ajout, de suppression, de modification et de requête de la base de données. Supposons que nous utilisons une base de données MySQL.

Le mappage polymorphe Hibernate peut mapper les classes héritées à la base de données et fournit les types de mappage suivants : join-subclass : crée une table séparée pour la sous-classe, incluant toutes les colonnes de la classe parent. table par classe : créez une table distincte pour les sous-classes, contenant uniquement des colonnes spécifiques aux sous-classes. union-subclass : similaire à join-subclass, mais la table de classe parent réunit toutes les colonnes de la sous-classe.

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

En tant que plate-forme vidéo courte, Kuaishou permet aux utilisateurs de partager leur vie à tout moment et n'importe où. Les rappels fréquents de messages privés peuvent interrompre notre vie quotidienne. Alors, comment désactiver le rappel des messages privés de Kuaishou ? 1. Comment désactiver le rappel des messages privés de Kuaishou ? Pour désactiver le rappel de message privé de Kuaishou, vous devez accéder au menu des paramètres de Kuaishou. Sur la page d'accueil de Kuaishou, cliquez sur le bouton « Mon » dans le coin inférieur droit, recherchez l'option « Paramètres » et cliquez pour entrer. Après être entré dans le menu des paramètres, recherchez l'option « Paramètres de notification » ou « Paramètres de message ». Après avoir cliqué pour entrer, vous verrez l'option « Rappel de message privé ». Cliquez pour saisir des rappels de messages privés, puis désactivez le commutateur pour ne plus recevoir de rappels de messages privés. 2. Comment fermer les messages pop-up dans les messages privés de Kuaishou ? En plus de désactiver les rappels de messages privés, si vous souhaitez également pouvoir désactiver les rappels de messages privés,

En tant que l'une des plateformes de vidéos courtes les plus populaires au monde, Douyin dispose d'une large base d'utilisateurs et de fonctions riches. La fonction de message privé est un moyen important pour les utilisateurs d'interagir les uns avec les autres, et les sonneries de messages privés sont un moyen important de rappeler aux utilisateurs les nouveaux messages privés. Alors, où puis-je définir la sonnerie des messages privés de TikTok ? Cet article présentera en détail comment définir la sonnerie des messages privés de Douyin et comment résoudre le problème de l'absence de rappel sonore pour les messages privés entrants. 1. Où puis-je définir la sonnerie des messages privés de Douyin ? 1. Ouvrez l'application TikTok : Tout d'abord, ouvrez votre application TikTok. 2. Entrez dans l'interface de message privé : Au bas de la page d'accueil de Douyin, cliquez sur l'icône « Message » pour accéder à l'interface de message privé. 3. Ouvrez les paramètres : dans le coin supérieur droit de l'interface de message privé, cliquez sur l'icône des paramètres (généralement une forme d'engrenage). 4. Sélectionnez les paramètres de message privé : dans le menu des paramètres, recherchez et sélectionnez

HTML ne peut pas lire directement la base de données, mais cela peut être réalisé via JavaScript et AJAX. Les étapes comprennent l'établissement d'une connexion à la base de données, l'envoi d'une requête, le traitement de la réponse et la mise à jour de la page. Cet article fournit un exemple pratique d'utilisation de JavaScript, AJAX et PHP pour lire les données d'une base de données MySQL, montrant comment afficher dynamiquement les résultats d'une requête dans une page HTML. Cet exemple utilise XMLHttpRequest pour établir une connexion à la base de données, envoyer une requête et traiter la réponse, remplissant ainsi les données dans les éléments de la page et réalisant la fonction de lecture HTML de la base de données.
