Design+Artifacts

=Logical Data Model=



=Relational Data Model=





=Physical Database Design=



Information about bands
 * BAND**
 * band_id - number of band
 * band_name - name of band
 * year_est - band's year of establishment

Information about users
 * USER**
 * username - account user name
 * password - account password
 * nick - user's nickname
 * first_name - user's first name
 * middle_initial -user's middle initial
 * surname - user's surname
 * name suffix - user's name suffix
 * birth_month - user's month of birth
 * birth_date - user's date of birth
 * birth_year - user's year of birth
 * email_add - user's email address

Information about band members
 * MEM**
 * username - number of mem
 * nick - mem's nickname
 * first_name - mem's first name
 * middle_initial -mem's middle initial
 * surname - mem's surname
 * name suffix - mem's name suffix
 * birth_month - mem's month of birth
 * birth_date - mem's date of birth
 * birth_year - mem's year of birth

Listing of musical instruments
 * INSTRUMENT**
 * inst_id - id of instrument
 * inst_name - name of instrument

Information about band music
 * MUSIC**
 * music_id - id of music
 * title - title of music
 * minutes - music's duration (minutes part)
 * seconds - music's duration (seconds part)
 * dl_link - download link of music file
 * embed_link - embedded link of music file

Listing of music categories
 * GENRE**
 * genre_id - id of genre
 * genre_title - genre title

Information about band gigs
 * GIG**
 * gig_id - number of gig
 * month - month of gig
 * day - day of gig
 * year - year of gig
 * hour - hour of gig
 * minute - minute of gig
 * venue - venue of gig
 * duration - band's gig duration in minutes

Entails the band ownership of a user
 * BAND_USER**
 * band_id - number of the band (REFERS to BAND band_id)
 * username - number of user (REFERS to USER username )

Entails the band followed by users
 * FOLLOW**
 * band_id - number of the band (REFERS to BAND band_id)
 * username - number of user (REFERS to USER username )

Entails the band membership of a member
 * BAND_MEM**
 * band_id - number of the band (REFERS to BAND band_id)
 * mem_id - number of member (REFERS to MEM mem_id)

Entails the band ownership of a music
 * BAND_MUSIC**
 * band_id - number of the band (REFERS to BAND band_id)
 * music_id - number of music (REFERS to MUSIC music_id)

Entails the band ownership of a gig
 * BAND_GIG**
 * band_id - number of the band (REFERS to BAND band_id)
 * gig_id - number of gig (REFERS to GIG gig_id)

Entails the instrument/s used by a band member
 * MEM_INSTRUMENT**
 * mem_id - number of mem (REFERS to MEM mem_id)
 * inst_id - id of instrument (REFERS to INSTRUMENT inst_id)

Entails genre/s of every music
 * MUSIC_GENRE**
 * music_id - id of music (REFERS to MUSIC music_id)
 * genre_id - id of genre (REFERS to GENRE genre_id)

=Business Constraints=

Reject negative inputs until user enters a positive input or decides to cancel the transaction.
 * Negative integer inputs for integer variables**:

Reject futuristic inputs until user enters a valid one or decides to cancel the transaction
 * Future time inputs on birth information and band establishment year**:

Reject expired inputs until user enters a valid one or decides to cancel the transaction
 * Past or expired time inputs on gig schedules**:

Reject invalid input until user enters a correct pair or decides to cancel transaction
 * Not matching username and password**: