Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Leitfaden zum Entwerfen einer Datenbank für Benachrichtigungen in MySQL

Dieses Lernprogramm enthält die vollständigen Schritte zum Entwerfen eines Datenbankschemas des Benachrichtigungssystems zum Verwalten der Benutzerbenachrichtigungen. Es kann weiter verbessert und verwendet werden, um die Benachrichtigungen anderer Entitäten außer dem Systembenutzer zu verwalten.

Das Entity-Relationship-Diagramm oder visuelle Datenbankdesign ist unten dargestellt.

Benachrichtigungsverwaltungsdatenbank

Sie können auch die beliebten Tutorials besuchen, darunter So installieren Sie MySQL 8 unter Ubuntu 20.04 LTS, So installieren Sie MySQL 8 unter Windows, So installieren Sie MySQL Workbench unter Ubuntu, So installieren Sie MySQL 8 mit Workbench unter Windows 10, RBAC-Datenbank in MySql, Blog-Datenbank in MySQL, Quiz-Datenbank in MySQL, Datenbank für Umfragen und Umfragen in MySQL, Online-Warenkorb-Datenbank in MySQL und Lernen Sie grundlegende SQL-Abfragen in MySQL.

Benachrichtigungsdatenbank

Der allererste Schritt besteht darin, die Benachrichtigungsdatenbank zu erstellen. Es kann mit der unten gezeigten Abfrage erstellt werden.

CREATE SCHEMA `notification` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ich habe den Zeichensatz utf8mb4 verwendet um eine Vielzahl von Zeichen zu unterstützen.

Benutzertabelle

In diesem Abschnitt entwerfen wir die Benutzertabelle Benutzerinformationen zu speichern. Benutzer können ihre eigenen Benachrichtigungen verwalten. Nachfolgend finden Sie die Beschreibung aller Spalten der Benutzertabelle.

ID Die eindeutige ID zur Identifizierung des Benutzers.
Vorname Der Vorname des Benutzers.
Zweiter Vorname Der zweite Vorname des Benutzers.
Nachname Der Nachname des Benutzers.
Mobil Die Mobiltelefonnummer des Benutzers. Es kann für Anmelde- und Registrierungszwecke verwendet werden.
E-Mail Die E-Mail des Benutzers. Es kann für Anmelde- und Registrierungszwecke verwendet werden.
Passwort-Hash Der vom entsprechenden Algorithmus generierte Passwort-Hash. Wir müssen vermeiden, einfache oder verschlüsselte Passwörter zu speichern.
Registriert unter Diese Spalte kann verwendet werden, um die Lebensdauer des Benutzers mit der Anwendung zu berechnen.
Letzte Anmeldung Es kann verwendet werden, um die letzte Anmeldung des Benutzers zu identifizieren.
Einführung Die kurze Einführung des Benutzers.
Profil Benutzerdetails.

Die Benutzertabelle mit den entsprechenden Einschränkungen wird unten angezeigt.

CREATE TABLE `notification`.`user` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`firstName` VARCHAR(50) NULL DEFAULT NULL,
`middleName` VARCHAR(50) NULL DEFAULT NULL,
`lastName` VARCHAR(50) NULL DEFAULT NULL,
`username` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`passwordHash` VARCHAR(32) NOT NULL,
`registeredAt` DATETIME NOT NULL,
`lastLogin` DATETIME NULL DEFAULT NULL,
`intro` TINYTEXT NULL DEFAULT NULL,
`profile` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `uq_username` (`username` ASC),
UNIQUE INDEX `uq_mobile` (`mobile` ASC),
UNIQUE INDEX `uq_email` (`email` ASC) );

Benachrichtigungsvorlagentabelle

In diesem Abschnitt entwerfen wir die Benachrichtigungsvorlagentabelle verwendet, um den Benachrichtigungsinhalt zu generieren. Die Anwendung kann ferner das geeignete Vorlagensystem verwenden, um die Vorlage zu parsen, um den Benachrichtigungsinhalt zu erzeugen. Nachfolgend finden Sie die Beschreibung aller Spalten der Benachrichtigungsvorlagentabelle.

ID Die eindeutige ID zur Identifizierung der Benachrichtigungsvorlage.
Titel Der Vorlagentitel.
Beschreibung Die Vorlagenbeschreibung.
Typ Der Typ zur Klassifizierung der Vorlagen.
Quelltyp Der Quelltyp, um die Vorlagen nach dem Quelltyp zu klassifizieren.
Erstellt am Er speichert Datum und Uhrzeit der Erstellung der Vorlage.
Aktualisiert um Datum und Uhrzeit der Aktualisierung der Vorlage werden gespeichert.
Inhalt Die Spalte zum Speichern des Vorlageninhalts.

Die Benachrichtigungsvorlagentabelle mit den entsprechenden Einschränkungen wird unten angezeigt.

CREATE TABLE `notification`.`notification_template` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`description` VARCHAR(2048) NULL DEFAULT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`sourceType` VARCHAR(50) NOT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`) );

Benachrichtigungstabelle

In diesem Abschnitt entwerfen wir die Benachrichtigungstabelle um die von der Anwendung ausgelösten Benachrichtigungen zu speichern. Die Benachrichtigung kann mithilfe der Vorlage eines bestimmten Typs und Quellentyps ausgelöst werden. Typ und Quelltyp der Benachrichtigung sind dieselben wie die der Vorlage, die zum Generieren des Benachrichtigungsinhalts verwendet wird. Unten erwähnt ist die Beschreibung aller Spalten der Benachrichtigungstabelle.

ID Die eindeutige ID zur Identifizierung der Benachrichtigung.
Benutzer-ID Die Benutzer-ID zur Identifizierung des mit der Benachrichtigung verknüpften Benutzers.
Quellen-ID Die Quell-ID zur Identifizierung der mit der Benachrichtigung verknüpften Entität.
Quelltyp Der Quellentyp zum Identifizieren der Entität, die der Benachrichtigung zugeordnet ist. Es ist derselbe wie der Quelltyp der Vorlage.
Typ Der Typ zur Klassifizierung der Benachrichtigungen. Es ist derselbe wie der Vorlagentyp.
Lesen Das Flag zum Markieren der Benachrichtigung als gelesen/ungelesen.
Papierkorb Das Flag, um die Benachrichtigung als Papierkorb zu markieren.
Erstellt am Er speichert Datum und Uhrzeit der Erstellung der Benachrichtigung.
Aktualisiert um Datum und Uhrzeit der Aktualisierung der Benachrichtigung werden gespeichert.
Inhalt Der mit der entsprechenden Vorlage generierte Benachrichtigungsinhalt.

Die Benachrichtigungstabelle mit den entsprechenden Einschränkungen ist unten dargestellt.

CREATE TABLE `notification`.`notification` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`sourceId` BIGINT NOT NULL,
`sourceType` VARCHAR(50) NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`read` TINYINT(1) NOT NULL DEFAULT 1,
`trash` TINYINT(1) NOT NULL DEFAULT 1,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_notification_user` (`userId` ASC),
CONSTRAINT `fk_notification_user`
FOREIGN KEY (`userId`)
REFERENCES `notification`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

Zusammenfassung

In diesem Tutorial haben wir das Datenbankdesign eines Benachrichtigungssystems besprochen, um die Benutzer zu speichern und ihre Benachrichtigungen zu verwalten. Es enthält auch die Benachrichtigungsvorlagentabelle, die zum Generieren der Benachrichtigungen erforderlich ist.

Sie können Ihre Kommentare einreichen, um an der Diskussion teilzunehmen. Sie könnten auch daran interessiert sein, die Datenbank der Anwendungen Blog und Umfrage &Umfrage zu entwerfen. Das vollständige Datenbankschema ist auch auf GitHub verfügbar.