Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Panduan Merancang Database Untuk Notifikasi Di MySQL

Tutorial ini memberikan langkah-langkah lengkap untuk merancang skema database Sistem Notifikasi untuk mengelola notifikasi pengguna. Ini dapat lebih ditingkatkan dan digunakan untuk mengelola notifikasi entitas lain selain dari pengguna sistem.

Diagram Hubungan Entitas atau desain basis data visual ditunjukkan di bawah ini.

Basis Data Manajemen Pemberitahuan

Anda juga dapat mengunjungi tutorial populer termasuk Cara Menginstal MySQL 8 di Ubuntu 20.04 LTS, Cara Menginstal MySQL 8 di Windows, Cara Menginstal MySQL Workbench Di Ubuntu, Cara Menginstal MySQL 8 Dengan Workbench Di Windows 10, Database RBAC di MySql, Database Blog di MySql, Database Quiz di MySQL, Database Poll &Survey di MySQL, Database Keranjang Belanja Online di MySQL, dan Pelajari Query SQL Dasar Di MySQL.

Basis Data Pemberitahuan

Langkah pertama adalah membuat Database Notifikasi. Itu dapat dibuat menggunakan kueri seperti yang ditunjukkan di bawah ini.

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

Saya telah menggunakan set karakter utf8mb4 untuk mendukung berbagai karakter.

Tabel Pengguna

Di bagian ini, kita akan mendesain Tabel Pengguna untuk menyimpan informasi pengguna. Pengguna dapat mengelola notifikasi mereka sendiri. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Pengguna.

Id Id unik untuk mengidentifikasi pengguna.
Nama Depan Nama depan pengguna.
Nama Tengah Nama tengah pengguna.
Nama Belakang Nama belakang pengguna.
Seluler Nomor ponsel pengguna. Ini dapat digunakan untuk tujuan login dan registrasi.
Email Email pengguna. Ini dapat digunakan untuk tujuan login dan registrasi.
Hash Kata Sandi Hash kata sandi yang dihasilkan oleh algoritme yang sesuai. Kita harus menghindari penyimpanan kata sandi biasa atau terenkripsi.
Terdaftar Di Kolom ini dapat digunakan untuk menghitung umur pengguna dengan aplikasi tersebut.
Login Terakhir Ini dapat digunakan untuk mengidentifikasi login terakhir pengguna.
Pengantar Pengenalan singkat tentang Pengguna.
Profil Detail pengguna.

Tabel Pengguna dengan batasan yang sesuai ditunjukkan di bawah ini.

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

Tabel Template Pemberitahuan

Di bagian ini, kita akan mendesain Tabel Template Pemberitahuan digunakan untuk menghasilkan konten notifikasi. Aplikasi selanjutnya dapat menggunakan sistem template yang sesuai untuk mengurai template guna menghasilkan konten notifikasi. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Template Pemberitahuan.

Id Id unik untuk mengidentifikasi template notifikasi.
Judul Judul template.
Deskripsi Deskripsi template.
Ketik Jenis untuk mengklasifikasikan template.
Jenis Sumber Jenis sumber untuk mengklasifikasikan template menurut jenis sumbernya.
Dibuat Pada Ini menyimpan tanggal dan waktu saat template dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu saat template diperbarui.
Konten Kolom yang digunakan untuk menyimpan konten template.

Tabel Template Pemberitahuan dengan batasan yang sesuai ditunjukkan di bawah ini.

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

Tabel Pemberitahuan

Di bagian ini, kami akan mendesain Tabel Notifikasi untuk menyimpan notifikasi yang dipicu oleh aplikasi. Notifikasi dapat dipicu menggunakan templat dari tipe dan tipe sumber tertentu. Jenis dan jenis sumber pemberitahuan akan sama dengan template yang digunakan untuk menghasilkan konten pemberitahuan. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Pemberitahuan.

Id Id unik untuk mengidentifikasi notifikasi.
Id Pengguna ID pengguna untuk mengidentifikasi pengguna yang terkait dengan notifikasi.
Id Sumber Id sumber untuk mengidentifikasi entitas yang terkait dengan notifikasi.
Jenis Sumber Jenis sumber untuk mengidentifikasi entitas yang terkait dengan notifikasi. Ini akan sama dengan jenis sumber template.
Ketik Jenis untuk mengklasifikasikan notifikasi. Ini akan sama dengan jenis template.
Baca Bendera untuk menandai notifikasi sebagai telah dibaca/belum dibaca.
Sampah Bendera untuk menandai notifikasi sebagai sampah.
Dibuat Pada Ini menyimpan tanggal dan waktu saat pemberitahuan dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu pembaruan pemberitahuan.
Konten Konten notifikasi yang dihasilkan menggunakan template yang sesuai.

Tabel Notifikasi dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

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

Ringkasan

Dalam tutorial ini, kita telah membahas desain database Sistem Notifikasi untuk menyimpan pengguna dan mengelola notifikasi mereka. Ini juga mencakup Tabel Template Pemberitahuan yang diperlukan untuk menghasilkan pemberitahuan.

Anda dapat mengirimkan komentar Anda untuk bergabung dalam diskusi. Anda mungkin juga tertarik untuk mendesain database aplikasi Blog dan Poll &Survey. Skema database lengkap juga tersedia di 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. MENIT() Contoh – MySQL

  2. Menghasilkan pohon berbasis Kedalaman dari Data Hirarki di MySQL (tanpa CTE)

  3. PyMySQL tidak dapat terhubung ke MySQL di localhost

  4. Tidak Dapat Membuat Model Data Entitas - menggunakan MySql dan EF6

  5. Apakah SQL Server Menawarkan Apa Pun Seperti MySQL's ON DUPLICATE KEY UPDATE?