Tugas 10 - Perancangan Perangkat Lunak (A)
Nama : Yusna Millaturrosyidah
NRP : 5025211254
Kelas : Perancangan Perangkat Lunak (A)
Desain Database
Design Database
Tabel
User : Menyimpan informasi pengguna seperti ID, nama, email, dan timestamp untuk pembuatan dan pembaruan akun.
Tabel User
id
(Primary Key, HashKey): Identifikasi unik untuk setiap pengguna.name
: Nama pengguna.email
: Alamat email pengguna.created_at
: Waktu ketika akun pengguna dibuat.updated_at
: Waktu ketika akun pengguna terakhir diperbarui.
User Feeds : Menyimpan entri feed untuk setiap pengguna, menghubungkan pengguna dengan kiriman yang muncul di feed mereka.
Tabel User Feeds
id
(Primary Key, HashKey): Identifikasi unik untuk setiap entri feed.user_id
: ID pengguna untuk siapa feed dihasilkan.post_id
: ID dari kiriman yang muncul di feed pengguna.created_at
: Waktu ketika entri feed dibuat.
Post Comments : Menyimpan komentar yang dibuat oleh pengguna pada kiriman, mencakup ID komentar, ID kiriman, ID pengguna, konten komentar, dan timestamp.
Tabel Post Comments
id
(Primary Key): Identifikasi unik untuk setiap komentar.post_id
: ID dari kiriman yang dikomentari.user_id
: ID pengguna yang membuat komentar.comment
: Konten teks dari komentar.created_at
: Waktu ketika komentar dibuat.updated_at
: Waktu ketika komentar terakhir diperbarui.
Posts : Menyimpan informasi tentang kiriman seperti ID unggahan, ID pengguna, tipe kiriman (foto/video), jumlah like dan komentar, serta timestamp untuk pembuatan dan pembaruan kiriman.
Tabel Posts
upload_id
(Primary Key, HashKey): Identifikasi unik untuk setiap unggahan.user_id
: ID pengguna yang membuat kiriman.type
: Tipe kiriman (misalnya, foto, video).total_likes
: Jumlah total like pada kiriman.total_comments
: Jumlah total komentar pada kiriman.post_id
: ID dari kiriman.created_at
: Waktu ketika kiriman dibuat.updated_at
: Waktu ketika kiriman terakhir diperbarui.
Post Likes : Menyimpan informasi tentang like yang diberikan pengguna pada kiriman, mencakup ID like, ID kiriman, ID pengguna, dan timestamp.
Tabel Post Likes
id
(Primary Key): Identifikasi unik untuk setiap like.post_id
: ID dari kiriman yang disukai.user_id
: ID pengguna yang menyukai kiriman.created_at
: Waktu ketika like dibuat.updated_at
: Waktu ketika like terakhir diperbarui.
User Followers : Menyimpan hubungan antar pengguna yang mengikuti satu sama lain, mencakup ID hubungan, ID pengguna yang diikuti, ID pengguna yang mengikuti, dan timestamp.
Tabel User Followers
id
(Primary Key, HashKey): Identifikasi unik untuk setiap hubungan follow.user_id
: ID pengguna yang diikuti.follower_id
: ID pengguna yang mengikuti.created_at
: Waktu ketika hubungan follow dibuat.
Photo : Menyimpan informasi tentang foto yang diunggah, termasuk ID foto, ID kiriman, ID pengguna, jalur file foto, koordinat geografis (lintang dan bujur) tempat foto diambil, dan timestamp.
Tabel Photo
photo_id
(Primary Key): Identifikasi unik untuk setiap foto.post_id
: ID dari kiriman yang mengandung foto.user_id
: ID pengguna yang mengunggah foto.photo_path
: Jalur file ke foto.photo_latitude
: Lintang di mana foto diambil.photo_longitude
: Bujur di mana foto diambil.user_latitude
: Lintang pengguna pada saat unggah.user_longitude
: Bujur pengguna pada saat unggah.created_at
: Waktu ketika foto diunggah.updated_at
: Waktu ketika metadata foto terakhir diperbarui.
User Uploads : Menyimpan informasi tentang unggahan pengguna, menghubungkan pengguna dengan foto yang diunggah serta timestamp untuk pembuatan dan pembaruan unggahan.
Tabel User Uploads
id
(Primary Key, HashKey): Identifikasi unik untuk setiap unggahan.user_id
: ID pengguna yang mengunggah konten.photo_id
: ID dari foto yang diunggah.created_at
: Waktu ketika konten diunggah.updated_at
: Waktu ketika unggahan terakhir diperbarui.
Database Relationships
User - Posts (One-to-Many Relationship)
- Deskripsi: Setiap pengguna dapat membuat banyak kiriman di platform.
- Implementasi: Tabel
Posts
memiliki kolomuser_id
yang merujuk keid
di tabelUser
. Ini memungkinkan setiap kiriman diidentifikasi dengan pembuatnya.
User - Comments (One-to-Many Relationship)
- Deskripsi: Setiap pengguna dapat memberikan banyak komentar pada berbagai kiriman.
- Implementasi: Tabel
Post Comments
memiliki kolomuser_id
yang merujuk keid
di tabelUser
. Ini mengaitkan setiap komentar dengan pengguna yang membuatnya.
User - Likes (One-to-Many Relationship)
- Deskripsi: Setiap pengguna dapat menyukai banyak kiriman di platform.
- Implementasi: Tabel
Post Likes
memiliki kolomuser_id
yang merujuk keid
di tabelUser
. Ini menghubungkan setiap like dengan pengguna yang memberikan like.
Post - Comments (One-to-Many Relationship)
- Deskripsi: Setiap kiriman dapat menerima banyak komentar dari berbagai pengguna.
- Implementasi: Tabel
Post Comments
memiliki kolompost_id
yang merujuk kepost_id
di tabelPosts
. Ini mengaitkan setiap komentar dengan kiriman yang dikomentari.
Post - Likes (One-to-Many Relationship)
- Deskripsi: Setiap kiriman dapat menerima banyak like dari berbagai pengguna.
- Implementasi: Tabel
Post Likes
memiliki kolompost_id
yang merujuk kepost_id
di tabelPosts
. Ini menghubungkan setiap like dengan kiriman yang disukai.
User - Followers (Many-to-Many Relationship)
- Deskripsi: Pengguna dapat mengikuti banyak pengguna lain dan diikuti oleh banyak pengguna.
- Implementasi: Tabel
User Followers
memiliki kolomuser_id
danfollower_id
, yang keduanya merujuk keid
di tabelUser
. Ini memungkinkan setiap pengguna mengikuti dan diikuti oleh banyak pengguna.
Post - Photos (One-to-Many Relationship)
- Deskripsi: Setiap kiriman dapat mengandung banyak foto.
- Implementasi: Tabel
Photo
memiliki kolompost_id
yang merujuk kepost_id
di tabelPosts
. Ini mengaitkan setiap foto dengan kiriman yang mengandungnya.
User - User Uploads (One-to-Many Relationship)
- Deskripsi: Setiap pengguna dapat mengunggah banyak foto atau video.
- Implementasi: Tabel
User Uploads
memiliki kolomuser_id
yang merujuk keid
di tabelUser
. Ini menghubungkan setiap unggahan dengan pengguna yang mengunggahnya.
Photo - User Uploads (One-to-One Relationship)
- Deskripsi: Setiap foto atau video hanya dapat ada di satu unggahan.
- Implementasi: Tabel
User Uploads
memiliki kolomphoto_id
yang merujuk kephoto_id
di tabelPhoto
. Ini memastikan setiap foto hanya ada di satu unggahan.
Komentar
Posting Komentar