-
Notifications
You must be signed in to change notification settings - Fork 0
Specifikacija baze podataka
Baza podataka za projekat iz predmeta Principi softverskog inženjerstva predstavlja fleksibilan i pouzdan način čuvanja podataka i pristupa istim od strane veb servera radi serviranja zahteva klijenta.
U dokumentu je dat model podataka u IE (Information Engineering) notaciji, šema relacione baze podataka, kao i opis svih tabela u bazi podataka.
Ovaj dokument služi kao osnova za razvoj detaljne projektne specifikacije posmatranog podsistema, implementaciju i testiranje. Svi podaci koje je potrebno čuvati su dobijeni u fazi analize korisničkih zahteva.
Dokument je namenjen vođi (tim lideru) projekta i članovima razvojnog tima.
Tim lideru ovaj dokument služi za planiranje razvojnih aktivnosti i specifikaciju imena tabela i imena polja u bazi, kako bi nezavisne celine, implementirane od strane različitih delova razvojnog tima, na kraju rada bile uspešno integrisane.
Razvojnom timu dokument služi kao osnova za dizajn i implementaciju.
Ostatak dokumenta organizovan je u sledeća poglavlja:
- Model podataka: model podataka u bazi i šema baze, i
- Tabele: spisak tabela.
U ovoj sekciji navode se otvorena pitanja. Ona se numerišu i pozicioniraju u vremenu radi lakšeg referisanja. Kada se pitanje reši, potrebno je to uneti u odgovarajuću rubriku.
# | Datum | Problem | Rešenje |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 |
- USERS(id, username, real_name, created_at, password, profile_photo_uuid, is_admin)
- FOLLOWS(follower_id, followee_id, created_at)
- BLOCKS(blocker_id, blockee_id, created_at)
- POSTS(id, post_url, file_uuid, description, user_id, created_at, password, reviewed, sponsored)
- UNLOCKS(user_id, post_id, created_at)
- POST_LIKES(user_id, post_id, created_at)
- COMMENTS(id, comment_text, post_id, parent_comment_id, user_id, created_at)
- COMMENT_LIKES(user_id, comment_id, created_at)
- HASHTAGS(post_id, tag_name)
Sadrži podatke o korisniku. Korisničko ime mora biti jedinstveno. Polje za šifru je heširano.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
id | INTEGER | ✅ | ❌ | ✅ | ✅ |
username | VARCHAR(255) | ❌ | ❌ | ✅ | ✅ |
real_name | VARCHAR(255) | ❌ | ❌ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
password | VARCHAR(255) | ❌ | ❌ | ❌ | ✅ |
profile_photo_uuid | UUID | ❌ | ❌ | ❌ | ❌ |
is_admin | BOOLEAN | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o praćenjima naloga. Korisnik može da zaprati nekog korisnika samo jednom.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
follower_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
followee_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o blokiranju naloga. Korinisk može da blokira korisnika samo jednom.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
blocker_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
blockee_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o objavi. Šifra objave je u izvornom obliku.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
id | INTEGER | ✅ | ❌ | ✅ | ✅ |
post_url | VARCHAR(16) | ❌ | ❌ | ✅ | ✅ |
file_uuid | UUID | ❌ | ❌ | ❌ | ✅ |
description | VARCHAR(255) | ❌ | ❌ | ❌ | ✅ |
user_id | INTEGER | ❌ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
password | VARCHAR(32) | ❌ | ❌ | ❌ | ✅ |
reviewed | BOOLEAN | ❌ | ❌ | ❌ | ✅ |
sponsored | BOOLEAN | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o otključavanju objava. Korisnik može da otključa objavu samo jednom.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
user_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
post_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o sviđanju objava. Korisnik može da označi da mu se objava sviđa samo jednom.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
user_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
post_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o komentarima.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
id | INTEGER | ✅ | ❌ | ✅ | ✅ |
comment_text | VARCHAR(255) | ❌ | ❌ | ❌ | ✅ |
post_id | INTEGER | ❌ | ✅ | ❌ | ✅ |
parent_comment_id | INTEGER | ❌ | ✅ | ❌ | ❌ |
user_id | INTEGER | ❌ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o sviđanju komentara. Korisnik može da označi da mu se komentar sviđa samo jednom.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
user_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
comment_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
created_at | TIMESTAMP | ❌ | ❌ | ❌ | ✅ |
Sadrži podatke o heštegovima.
Naziv | Tip | PK | FK | U | NN |
---|---|---|---|---|---|
post_id | INTEGER | ✅ | ✅ | ❌ | ✅ |
tag_name | VARCHAR(32) | ✅ | ❌ | ❌ | ✅ |
- Faza 1:
- Faza 2:
- Faza 3:
- Logovi inspektora:
- Izveštaj o defektima
- Izveštaj sa FR sastanka
- Faza 4:
- Faza 5: