Mysql
 sql >> база данни >  >> RDS >> Mysql

Ръководство за проектиране на база данни за известия в MySQL

Този урок предоставя пълните стъпки за проектиране на схема на база данни на системата за уведомяване за управление на потребителските известия. Може да бъде допълнително подобрен и използван за управление на известията на други субекти, освен потребителя на системата.

Диаграмата на взаимоотношенията на обектите или визуалният дизайн на базата данни е показан по-долу.

База данни за управление на уведомления

Можете също да посетите популярните уроци, включително Как да инсталирате MySQL 8 на Ubuntu 20.04 LTS, Как да инсталирате MySQL 8 на Windows, Как да инсталирате MySQL Workbench на Ubuntu, Как да инсталирате MySQL 8 с Workbench на Windows 10, RBAC база данни в MySql, База данни за блогове в MySql, База данни за тестове в MySQL, База данни за анкети и анкети в MySQL, База данни за онлайн пазарска кошница в MySQL и Научете основни SQL заявки в MySQL.

База данни за уведомления

Първата стъпка е да създадете базата данни за уведомления. Може да се създаде с помощта на заявката, както е показано по-долу.

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

Използвал съм набора от знаци utf8mb4 за поддръжка на широк спектър от знаци.

Таблица с потребители

В този раздел ще проектираме Таблица на потребителите за съхраняване на потребителска информация. Потребителите могат да управляват свои собствени известия. По-долу е посочено описанието на всички колони на потребителската таблица.

Id Уникалният идентификатор за идентифициране на потребителя.
Име Първото име на потребителя.
Биринно име Биринното име на потребителя.
Фамилия Фамилията на потребителя.
Мобилни Мобилният номер на потребителя. Може да се използва за влизане и регистрация.
Имейл Имейлът на потребителя. Може да се използва за влизане и регистрация.
Хеш на парола Хешът на паролата, генериран от подходящия алгоритъм. Трябва да избягваме съхраняването на обикновени или криптирани пароли.
Регистриран в Тази колона може да се използва за изчисляване на живота на потребителя с приложението.
Последно влизане Може да се използва за идентифициране на последното влизане на потребителя.
Въведение Краткото представяне на потребителя.
Профил Подробности за потребителя.

Потребителската таблица със съответните ограничения е показана по-долу.

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) );

Таблица с шаблони за известия

В този раздел ще проектираме Таблица с шаблони за известия използвани за генериране на съдържанието на известията. Приложението може допълнително да използва подходящата шаблонна система, за да анализира шаблона, за да генерира съдържанието на известието. По-долу е посочено описанието на всички колони на таблицата с шаблони за уведомяване.

Id Уникалният идентификатор за идентифициране на шаблона за уведомяване.
Заглавие Заглавието на шаблона.
Описание Описанието на шаблона.
Тип Типът за класифициране на шаблоните.
Тип източник Типът на източника за класифициране на шаблоните според типа източник.
Създаден в Той съхранява датата и часа, в които е създаден шаблонът.
Актуализирано в Той съхранява датата и часа, в които шаблонът е бил актуализиран.
Съдържание Колоната, използвана за съхраняване на съдържанието на шаблона.

Таблицата с шаблони за уведомяване със съответните ограничения е показана по-долу.

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`) );

Таблица за известия

В този раздел ще проектираме Таблица за известия за съхраняване на известията, задействани от приложението. Уведомлението може да се задейства с помощта на шаблон от конкретен тип и тип източник. Типът и типът източник на известието ще бъдат същите като тези на шаблона, използван за генериране на съдържанието на известието. По-долу е посочено описанието на всички колони на Таблицата за уведомяване.

Id Уникалният идентификатор за идентифициране на известието.
Потребителски идентификатор Потребителският идентификатор за идентифициране на потребителя, свързан с известието.
Идентификатор на източника Идентификаторът на източника за идентифициране на обекта, свързан с известието.
Тип източник Типът източник за идентифициране на обекта, свързан с известието. Той ще бъде същият като типа източник на шаблона.
Тип Типът за класифициране на известията. Той ще бъде същият като типа на шаблона.
Прочетете Флагът за маркиране на известието като прочетено/непрочетено.
Кошче Флагът за маркиране на известието като кошче.
Създаден в Той съхранява датата и часа, в които е създадено известието.
Актуализирано в Той съхранява датата и часа, в които известието се актуализира.
Съдържание Съдържанието за уведомяване, генерирано с помощта на съответния шаблон.

Таблицата за уведомяване със съответните ограничения е както е показано по-долу.

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);

Резюме

В този урок обсъдихме дизайна на база данни на система за известия за съхраняване на потребителите и управление на техните известия. Той също така включва таблицата с шаблони за известия, необходима за генериране на известията.

Можете да изпратите вашите коментари, за да се присъедините към дискусията. Може да се интересувате и от проектирането на базата данни на приложенията за блогове и анкети и анкети. Пълната схема на базата данни е достъпна и на GitHub.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql root паролата е забравена

  2. Как да съхранявате масиви в MySQL?

  3. LINQ за Java инструмент

  4. Как работи функцията MATCH() в MySQL

  5. Странно дублирано поведение от GROUP_CONCAT на две LEFT JOIN от GROUP_BY