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
Postsmemiliki kolomuser_idyang merujuk keiddi 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 Commentsmemiliki kolomuser_idyang merujuk keiddi 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 Likesmemiliki kolomuser_idyang merujuk keiddi 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 Commentsmemiliki kolompost_idyang merujuk kepost_iddi 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 Likesmemiliki kolompost_idyang merujuk kepost_iddi 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 Followersmemiliki kolomuser_iddanfollower_id, yang keduanya merujuk keiddi 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
Photomemiliki kolompost_idyang merujuk kepost_iddi 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 Uploadsmemiliki kolomuser_idyang merujuk keiddi 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 Uploadsmemiliki kolomphoto_idyang merujuk kephoto_iddi tabelPhoto. Ini memastikan setiap foto hanya ada di satu unggahan.












Komentar
Posting Komentar