Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Memodelkan Struktur Data Dasar untuk Mengelola Pengguna, Utas, dan Posting

Forum diskusi online adalah situs tempat orang dapat mengadakan percakapan dalam bentuk pesan . yang diposting . Forum diskusi memungkinkan percakapan terjadi saat orang tidak online, dan pesan mungkin diarsipkan untuk sementara. Juga, tergantung pada pengaturan forum, sebuah pesan mungkin perlu disetujui oleh moderator sebelum dapat dilihat oleh pengguna lain. Forum memiliki serangkaian istilah tertentu, misalnya, satu percakapan umumnya disebut sebagai "utas". Utas dapat dibalas oleh sebanyak mungkin orang. Sebagian besar forum mengharuskan pengguna untuk mendaftar dan kemudian masuk untuk mengirim pesan. Namun, di sebagian besar forum, pengguna tidak perlu masuk untuk membaca pesan yang ada.

Ini adalah persyaratan umum untuk forum situs web , jadi mari kita bekerja untuk membuat model database yang dimulai dengan pengaturan forum dasar yang dapat kita kembangkan nanti.

Entitas

Seperti yang disebutkan sebelumnya, orang mengadakan percakapan dalam bentuk pesan yang diposting yang dikelompokkan dalam percakapan. Jadi database perlu mendukung informasi tentang orang atau pengguna , percakapan atau utas dan pesan atau pos .

Untuk forum online, pengguna perlu dibuat – mungkin perlu mengizinkan pengguna untuk mengedit detail mereka setelah dibuat, tetapi mungkin tidak perlu mengizinkan penghapusan pengguna. Pengguna akan membuat percakapan, atau utas, umumnya dengan memposting pesan pertama ke forum, daripada membuat percakapan secara eksplisit, tetapi mungkin perlu untuk mendukung kedua kemungkinan tersebut. Utas akan berisi pos yang dibuat oleh pengguna.

Fungsionalitas

Memposting pesan adalah fungsi utama forum online . Haruskah pengguna dapat mengedit pesan setelah diposting? Haruskah pengguna dapat menghapus pesan setelah memposting? Jawaban untuk keduanya mungkin ya.

Hubungan

Postingan ditautkan ke utas dan postingan dibuat oleh pengguna, jadi akan ada hubungan yang ditentukan antara pengguna dan posting. Utas dibuat oleh pengguna sehingga Anda harus menyimpan hubungan di sana (misalnya, jika pengguna diblokir dari forum, Anda mungkin ingin menghapus semua utas dan pos yang dibuat pengguna tersebut).

Sekarang setelah Anda mengetahui entitas dan hubungan , Anda siap untuk membangun model database, dan itu hanya membutuhkan waktu beberapa menit. Di sinilah alat berguna.

Model Basis Data

Mari kita lihat Vertabelo untuk melanjutkan forum diskusi online.

Buat model untuk forum online dan mulai tambahkan di entitas mewakili pengguna, utas, dan pos. Vertabelo akan mengingatkan Anda bahwa Anda perlu mendefinisikan kunci utama untuk setiap tabel; Saya sarankan menggunakan id kolom karena itu akan memberi Anda lebih banyak potensi fleksibilitas (dan tidak akan mengikat Anda dengan nama pengguna sebagai kunci utama atau perangkap lainnya). Selanjutnya, tambahkan hubungan yang sudah kami jelaskan sebelumnya. Saya telah menambahkan kata sandi (dalam bentuk hash) bagi pengguna untuk mengontrol login pengguna.

Sekarang, Anda akan mendapatkan sesuatu yang kira-kira terlihat seperti ini:




Anda akan melihat bahwa ada stempel waktu dengan tanggal/waktu pembuatan setiap baris, sehingga informasi tersebut dapat ditampilkan di forum (“Pengguna sejak 2 Februari 2014”, “Tanggal diposting:24 Desember 2014”, dll. ).

Jika Anda ingin dimoderasi forum diskusi online di mana pesan harus disetujui oleh moderator sebelum terlihat oleh pengguna lain, maka Anda harus menambahkan item status ke utas dan posting sehingga aplikasi dapat memutuskan apakah utas dan posting terkait telah ditinjau dan disetujui. Status juga memungkinkan pengguna lain untuk menandai rangkaian pesan dan postingan sebagai spam atau tidak pantas.

Saya harap Anda sudah bisa mulai memikirkan perbaikan. Misalnya, jika Anda memerlukan detail formal tentang pengguna, alih-alih satu bidang "nama", Anda mungkin menginginkan nama depan, nama belakang, dan nama pengguna atau nama panggilan mereka. Dan sebuah postingan mungkin memiliki subjek selain konten, tetapi menurut saya subjek postingan tersebut ditautkan kembali ke utas sehingga mungkin tidak diperlukan.

Bagian Selanjutnya »

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa Perbedaan Antara RANK dan DENSE_RANK dalam SQL?

  2. Cara Menghitung Perbedaan Antara Dua Tanggal di T-SQL

  3. Pemeliharaan Tampilan Terindeks dalam Rencana Eksekusi

  4. Menangani Nilai NULL Secara Efektif dengan Fungsi SQL COALESCE untuk Pemula

  5. Lacak Sinyal dengan Model Data Pemrosesan Sinyal