Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hướng dẫn thiết kế cơ sở dữ liệu cho sự kiện lịch và lời nhắc trong MySQL

Hướng dẫn này cung cấp các bước hoàn chỉnh để thiết kế giản đồ cơ sở dữ liệu của Hệ thống lời nhắc và sự kiện lịch để quản lý các sự kiện lịch của người dùng và cũng lưu trữ lời nhắc. Nó có thể được nâng cao hơn nữa và được sử dụng để quản lý các sự kiện và lời nhắc của các thực thể khác ngoài người dùng hệ thống.

Sơ đồ mối quan hệ thực thể hoặc thiết kế cơ sở dữ liệu trực quan được hiển thị bên dưới.

Sự kiện Lịch và Thiết kế Cơ sở dữ liệu Nhắc nhở

Bạn cũng có thể xem các hướng dẫn phổ biến bao gồm Cách cài đặt MySQL 8 trên Ubuntu 20.04 LTS, Cách cài đặt MySQL 8 trên Windows, Cách cài đặt MySQL Workbench trên Ubuntu, Cách cài đặt MySQL 8 với Workbench trên Windows 10, Cơ sở dữ liệu RBAC trong MySql, Cơ sở dữ liệu blog trong MySql, Cơ sở dữ liệu câu hỏi trong MySQL, Cơ sở dữ liệu thăm dò và khảo sát trong MySQL, Cơ sở dữ liệu giỏ hàng trực tuyến trong MySQL và Tìm hiểu các truy vấn SQL cơ bản trong MySQL.

Cơ sở dữ liệu lịch

Bước đầu tiên là tạo Cơ sở dữ liệu lịch. Nó có thể được tạo bằng cách sử dụng truy vấn như hình dưới đây.

 TẠO SCHEMA `lịch` BỘ NHÂN VẬT ĐỊNH MỨC utf8mb4 COLLATE utf8mb4_unicode_ci; 

Tôi đã sử dụng bộ ký tự utf8mb4 để hỗ trợ nhiều loại ký tự.

Bảng Người dùng

Trong phần này, chúng tôi sẽ thiết kế Bảng người dùng để lưu trữ thông tin người dùng. Người dùng có thể quản lý các sự kiện và lời nhắc của riêng họ. Dưới đây được đề cập là mô tả của tất cả các cột của Bảng Người dùng.

Id Id duy nhất để xác định người dùng.
Tên Tên của người dùng.
Tên đệm Tên đệm của người dùng.
Họ Họ của người dùng.
Di động Số điện thoại di động của người dùng. Nó có thể được sử dụng cho mục đích đăng nhập và đăng ký.
Email Email của người dùng. Nó có thể được sử dụng cho mục đích đăng nhập và đăng ký.
Băm mật khẩu Mật khẩu băm được tạo bởi thuật toán thích hợp. Chúng tôi phải tránh lưu trữ mật khẩu đơn giản hoặc mật khẩu được mã hóa.
Đã đăng ký tại Cột này có thể được sử dụng để tính toán tuổi thọ của người dùng với ứng dụng.
Lần Đăng nhập Cuối cùng Nó có thể được sử dụng để xác định thông tin đăng nhập cuối cùng của người dùng.
Giới thiệu Phần giới thiệu ngắn gọn về Người dùng.
Hồ sơ Chi tiết người dùng.

Bảng Người dùng với các ràng buộc thích hợp được hiển thị bên dưới.

 CREATE TABLE `history`.`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,
` tên người dùng` VARCHAR (50) NULL DEFAULT NULL,
`mobile` VARCHAR (15) NULL,
`email` VARCHAR (50) NULL,
` passwordHash` VARCHAR (32) NOT NULL,
`registerAt` 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),
CHỈ SỐ DUY NHẤT `uq_mobile` (` di động` ASC),
CHỈ SỐ DUY NHẤT `uq_email` (` email` ASC));

Bảng sự kiện

Trong phần này, chúng tôi sẽ thiết kế Bảng sự kiện để lưu trữ các sự kiện của người dùng và các sự kiện do ứng dụng kích hoạt. Dưới đây được đề cập là mô tả của tất cả các cột của Bảng Sự kiện.

Cờ
Id Id duy nhất để xác định sự kiện.
Id Người dùng Id người dùng để xác định người dùng tương ứng.
Id nguồn Id nguồn để xác định thực thể tương ứng.
Loại nguồn Loại nguồn để phân biệt thực thể tương ứng giữa các thực thể khác.
Tiêu đề Tiêu đề sự kiện.
Mô tả Mô tả sự kiện để lưu trữ các điểm nổi bật chính của sự kiện.
Loại Loại để phân biệt giữa các loại sự kiện khác nhau.
URL URL để chuyển hướng người dùng đến một liên kết cụ thể được liên kết với sự kiện.
Đang hoạt động Gắn cờ để xác định xem sự kiện có đang hoạt động và đủ điều kiện để hiển thị trên lịch hay không.
Hệ thống để xác định xem sự kiện có được tạo bởi ứng dụng hay không. Các sự kiện ứng dụng sẽ luôn đủ điều kiện để hiển thị trên lịch.
Số lượng lời nhắc Số lượng lời nhắc tối đa có thể được kích hoạt cho sự kiện.
Khoảng thời gian Lời nhắc Khoảng thời gian nhắc nhở.
Đơn vị lời nhắc Đơn vị nhắc nhở để xác định khoảng thời gian nhắc theo phút, giờ hoặc ngày.
Được tạo lúc Nó lưu trữ ngày và giờ mà sự kiện được tạo.
Cập nhật lúc Nó lưu trữ ngày và giờ mà sự kiện được cập nhật.
Đã lên lịch lúc Nó lưu trữ ngày và giờ trên Lịch.
Được kích hoạt tại Nó lưu trữ ngày và giờ mà sự kiện được kích hoạt.
Nội dung Cột được sử dụng để lưu trữ nội dung sự kiện.

Nó sử dụng cột Hoạt động để xác định liệu sự kiện do người dùng tạo có thể được hiển thị trên lịch hay không. Hệ thống cờ có thể được sử dụng để đánh dấu các sự kiện do ứng dụng tạo ra. Các sự kiện do ứng dụng tạo luôn có thể được hiển thị trên lịch. Các cột Id nguồn Loại nguồn có thể được sử dụng để xác định các bảng hoặc thực thể khác được liên kết với sự kiện. Cột Được kích hoạt lúc lưu trữ ngày và giờ mà sự kiện được kích hoạt lần cuối. Bảng Sự kiện với các ràng buộc thích hợp được hiển thị bên dưới.

 CREATE TABLE `history`.`event` (
` id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
` sourceId` BIGINT,
` sourceType` VARCHAR (50) NULL DEFAULT NULL,
`title` VARCHAR (1024) NOT NULL,
` descritpion` VARCHAR (2048) NULL DEFAULT NULL,
`type` SMALLINT (6) NOT NULL DEFAULT 0,
`url` VARCHAR (1024) NULL DEFAULT NULL,
` active` TINYINT (1) NOT NULL DEFAULT 0,
`system` TINYINT (1) NOT NULL DEFAULT 0,
`promptCount` SMALLINT (6) NOT NULL DEFAULT 0,
` promptInterval` SMALLINT (6) NOT NULL DEFAULT 0,
`nhắcUnit` SMALLINT (6) NOT NULL DEFAULT 0,
`tạo> `content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (` id`),
INDEX `idx_event_user` (` userId` ASC),
CONSTRAINT `fk_event_user`
FOREIGN KEY (`userId` )
TÀI LIỆU THAM KHẢO `lich`.

Bảng mẫu sự kiện

Trong phần này, chúng tôi sẽ thiết kế Bảng mẫu sự kiện được sử dụng để tạo nội dung sự kiện. Ứng dụng có thể sử dụng thêm hệ thống mẫu thích hợp để phân tích mẫu nhằm tạo ra nội dung sự kiện. Dưới đây được đề cập là mô tả của tất cả các cột của Bảng mẫu sự kiện.

Id Id duy nhất để xác định mẫu sự kiện.
Tiêu đề Tiêu đề mẫu.
Mô tả Mô tả mẫu.
Loại Loại để phân loại các mẫu.
Loại nguồn Loại nguồn để phân loại các mẫu theo loại nguồn.
Được tạo lúc Nó lưu trữ ngày và giờ tạo mẫu.
Cập nhật lúc Nó lưu trữ ngày và giờ tại đó mẫu được cập nhật.
Nội dung Cột được sử dụng để lưu trữ nội dung mẫu.

Bảng Mẫu Sự kiện với các ràng buộc thích hợp như được hiển thị bên dưới.

 CREATE TABLE `calendar`.`event_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) NULL DEFAULT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
` content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`));

Bảng nhắc nhở

Chúng tôi cũng cần một bảng để lưu trữ các lời nhắc được kích hoạt bởi các sự kiện đang hoạt động hoặc hệ thống. Phần này cung cấp bảng và các cột cần thiết để quản lý lời nhắc. Dưới đây được đề cập là mô tả của tất cả các cột của Bảng nhắc nhở.

Id Id duy nhất để xác định lời nhắc.
Id sự kiện Id sự kiện để xác định sự kiện được liên kết với lời nhắc.
Id Người dùng Id người dùng để xác định người dùng được liên kết với lời nhắc.
Đọc Cờ để đánh dấu lời nhắc là đã đọc / chưa đọc.
Thùng rác Cờ để đánh dấu lời nhắc là thùng rác.
Được tạo lúc Nó lưu trữ ngày và giờ mà lời nhắc được tạo.
Cập nhật lúc Nó lưu trữ ngày và giờ tại đó lời nhắc được cập nhật.
Nội dung Thông báo nhắc nhở.

Bảng Nhắc nhở với các ràng buộc thích hợp được hiển thị bên dưới.

 CREATE TABLE `history`.`reminder` (
` id` BIGINT NOT NULL AUTO_INCREMENT,
`eventId` BIGINT NOT NULL,
` userId` BIGINT NOT NULL,
`read` TINYINT (1) NOT NULL DEFAULT 1,
` rác` 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_reminder_event` (` eventId` ASC),
CONSTRAINT `fk_reminder_event`
NGOẠI KHÓA (`eventId`)
TÀI LIỆU THAM KHẢO` lich`.`event` (`id`)
KHI XÓA KHÔNG CÓ HÀNH ĐỘNG
KHI CẬP NHẬT KHÔNG CÓ HÀNH ĐỘNG);

ALTER TABLE `calendar`.
NGOẠI KHÓA (`userId`)
TÀI LIỆU THAM KHẢO` lich`.

Cải tiến

Chúng tôi cũng có thể quản lý các sự kiện nhóm bằng cách sử dụng cùng một lược đồ cơ sở dữ liệu. Có thể thực hiện việc này bằng cách thêm cờ nhóm vào bảng sự kiện và cần có một bảng mới để quản lý những người tham gia sự kiện nhóm.

Tóm tắt

Trong hướng dẫn này, chúng ta đã thảo luận về thiết kế cơ sở dữ liệu của Hệ thống Lịch để lưu trữ các sự kiện và lời nhắc của người dùng. Nó cũng cung cấp thiết kế cơ sở dữ liệu để quản lý các sự kiện người dùng được kích hoạt bởi hệ thống hoặc ứng dụng.

Bạn có thể gửi bình luận của mình để tham gia thảo luận. Bạn cũng có thể quan tâm đến việc thiết kế cơ sở dữ liệu của các ứng dụng Blog và Poll &Survey. Lược đồ cơ sở dữ liệu hoàn chỉnh cũng có sẵn trên 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. Bắt đầu ngày đầu tuần trong MySql bằng cách sử dụng Week No

  2. Dễ dàng thiết lập máy chủ web với XAMPP

  3. Làm cách nào để cắt bớt một bảng ràng buộc khóa ngoại?

  4. Làm cách nào để hợp nhất hai bảng MySQL?

  5. Sự cố với các ký tự UTF-8; những gì tôi thấy không phải là những gì tôi đã lưu trữ