Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pemesejan segera?

PHPz
Lepaskan: 2023-10-31 11:49:50
asal
1198 orang telah melayarinya

Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pemesejan segera?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pemesejan segera?

Dengan perkembangan pesat Internet, pemesejan segera telah menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai. Untuk memastikan keselamatan pemesejan segera, reka bentuk struktur jadual MySQL yang munasabah dan selamat telah menjadi penting. Artikel ini akan memperkenalkan cara mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pemesejan segera, dan menyediakan contoh kod khusus.

Pertama, kita perlu mencipta jadual pengguna untuk pengguna, yang akan menyimpan maklumat asas pengguna. Berikut ialah contoh reka bentuk jadual pengguna:

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(255) NOT NULL,
  email VARCHAR(100) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Salin selepas log masuk

Dalam jadual pengguna, kita perlu memberi perhatian kepada perkara berikut:

  1. Medan kata laluan hendaklah dicincang menggunakan kedai algoritma pencincangan untuk meningkatkan keselamatan kata laluan. Dalam contoh ini kita akan menggunakan algoritma bcrypt.
ALTER TABLE users
MODIFY COLUMN password VARCHAR(255) NOT NULL;
Salin selepas log masuk
  1. Medan e-mel hendaklah ditetapkan kepada UNIK untuk memastikan setiap pengguna mendaftar dengan e-mel yang unik.
ALTER TABLE users
ADD CONSTRAINT unique_email UNIQUE (email);
Salin selepas log masuk

Seterusnya, kita perlu mencipta jadual mesej untuk mesej sembang antara pengguna. Berikut ialah contoh reka bentuk jadual mesej:

CREATE TABLE messages (
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  sender_id INT(11) NOT NULL,
  receiver_id INT(11) NOT NULL,
  content TEXT NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Salin selepas log masuk

Dalam jadual mesej, kita perlu memberi perhatian kepada perkara berikut:

  1. Penghantar dan ID penerima hendaklah ditetapkan sebagai kunci asing untuk memastikan bahawa hanya ID pengguna yang sah boleh menghantar dan menerima mesej.
ALTER TABLE messages
ADD CONSTRAINT fk_sender
FOREIGN KEY (sender_id) REFERENCES users(id)
ON DELETE CASCADE;

ALTER TABLE messages
ADD CONSTRAINT fk_receiver
FOREIGN KEY (receiver_id) REFERENCES users(id)
ON DELETE CASCADE;
Salin selepas log masuk
  1. Kandungan mesej hendaklah disimpan menggunakan jenis TEKS untuk memastikan kandungan mesej yang lebih panjang boleh disimpan.

Akhir sekali, kita perlu mencipta jadual rakan untuk hubungan rakan antara pengguna. Berikut ialah contoh reka bentuk jadual rakan:

CREATE TABLE friendships (
  user1_id INT(11) NOT NULL,
  user2_id INT(11) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (user1_id, user2_id),
  FOREIGN KEY (user1_id) REFERENCES users(id) ON DELETE CASCADE,
  FOREIGN KEY (user2_id) REFERENCES users(id) ON DELETE CASCADE
);
Salin selepas log masuk

Dalam jadual rakan, kita perlu memberi perhatian kepada perkara berikut:

  1. kombinasi ID pengguna 1 dan pengguna 2 Hendaklah unik dan digunakan sebagai kunci utama.
  2. ID Pengguna 1 dan Pengguna 2 hendaklah ditetapkan sebagai kunci asing untuk memastikan bahawa hanya ID pengguna yang sah boleh mewujudkan hubungan rakan.

Melalui reka bentuk struktur jadual MySQL di atas, kami boleh melaksanakan sistem pemesejan segera yang selamat dan berfungsi sepenuhnya. Dalam aplikasi praktikal, kami boleh membuat pengoptimuman dan pelarasan selanjutnya mengikut keperluan.

Pautan rujukan:

  • dokumentasi rasmi MySQL: https://dev.mysql.com/doc/
  • bcrypt hash Algorithm : https://en.wikipedia.org/wiki/Bcrypt

Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pemesejan segera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!