wiki:ERModel


Податочни барања

Ентитети

  1. User – ентитет кој чува информации за секаков тип корисници на апликацијата
    • user_id (bigint)
    • profile_photo (text)
    • email (text, not null, unique)
    • username (text, not null, unique)
    • full_name(text, not null)
    • password (text, not null)

  1. Non-Admin User – ентитет кој чува податоци за слушателите и артистите
    • user_id* (bigint)
  1. Admin – ентитет кој чува податоци за администраторот
    • user_id* (bigint)
  1. Listener – ентитет кој чува податоци за слушателот на музика (секојдневен корисник)
    • user_id* (bigint)
  1. MusicalEntity - ентитет кој чува податоци за сите форми на објавена музика (Песна и Албум)
    • id (bigint)
    • title (text, not null)
    • genre (text, not null)
    • release_date (date, not null)
  1. Song – ентитет кој чува податоци за песните
    • link (text, not null)
    • id* (bigint)
  1. Artist – ентитет кој чува податоци за артистите (креатори на музика)
    • user_id* (bigint)
  1. Event – ентитет кој чува податоци за настаните на коишто настапуваат артистите
    • event_id (bigint)
    • name (text, not null)
    • location (text, not null)
    • venue (text, not null)
    • date (date, not null)
    • time (time, not null)
  1. Album – ентитет кој чува податоци за албумите објавени од артистите
    • id* (bigint)
  1. Playlist – ентитет кој чува податоци за плејлистите креирани од корисниците
    • playlist_id (bigint)
    • cover (text)
    • name (text, not null)

Релации

  1. follows (Non-Admin User ↔ Non-Admin User N:M)

Корисниците можат да следат други корисници.

  1. performs_at (Event ↔ Artist, N:M)

Артистите можат да настапуваат на настапи.

  1. artist_create (Artist ↔ Event, 1:N)

Артистот може да објавува настани

  1. admin_create (Admin ↔ Event, 1:N)

Администраторот може да објавува настани

  1. likes (Listener ↔ MusicalEntity, N:M)

Корисниците можат да ги додадат песните/албумите во листа на омилени (favourites).

  1. listens_to (Listener ↔ Song, N:M)

Корисниците можат да слушаат песни и притоа се зачувува датумот и времето на секое слушање.

  1. reviews (Listener ↔ MusicalEntity, N:M)

Корисниците можат да ги оценуваат песните/албумите со оценка (1-5) и коментар.

  1. creates (Listener ↔ Playlist, 1:M)

Корисниците можат да креираат листи со песни.

  1. saves (Listener ↔ Playlist, N:M)

Корисниците можат да зачувуваат листи со песни креирани од други корисници.

  1. is_in (Song ↔ Playlist, N:M)

Песните можат да се наоѓаат во листи со песни креирани од корисниците.

  1. has (Album ↔ Song, 1:N)

Еден албум содржи песни.

  1. modifies (Admin ↔ Song, 1:N)

Администраторот може да ги промени метаподатоците за песните.

  1. removes (Admin ↔ Song, 1:N)

Администраторот може да ги отстрани песните од базата.

  1. releases (Artist ↔ MusicalEntity, 1:N)

Артист може да објави песни/албуми.

  1. is_part_of (Artist ↔ MusicalEntity, N:M)

Артист може да е дел од песна/албум, и притоа да зазема различна улога (пр. главен вокал, гитарист, итн.)

Историјат

Верзија 1 - Почетна верзија

Верзија 2

  • Админинстраторот и артистите можат да додаваат настани.
  • Песните и албумите наследуваат од заедничка суперкласа - MusicalEntity
  • Артистите можат да бидат дел од песни/албуми, и притоа да имаат различни улоги.
  • Албумите можат да бидат објавени само од еден артист.

Верзија 3

  • За секој настан дополнително се чуваат име, датум и време
  • За релацијата listens_to наместо број на слушања, се чува timestamp од секое слушање со цел едно слушање на песната да се чува како посебен настан
Last modified 11 days ago Last modified on 01/26/26 19:54:52

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.