= ''Верзија 4'' == '' ЕR дијаграм'' [[Image(wiki:ERModel::ER_Model_V4.jpg,width=1100em​)]] == '' Податочни побарувања'' ''**Ентитети**'' 1. ''**events**'' - ентитет кој дефинира тип на настан * **id_event** - serial (примарен клуч) * **city** - varchar (задолжителен атрибут) * **date** - timestamp (задолжителен атрибут) * **name** - varchar (задолжителен атрибут) * **price** - нумерички тип (задолжителен атрибут) * **phone_number** - varchar (задолжителен атрибут) 2. ''**gallery**'' - ентитет кој дефинира тип на настан галерија * **style** - varchar (задолжителен атрибут) 3. ''**museum**'' - ентитет кој дефинира тип на настан музеј * **workshop** - varchar (опционален атрибут) * **history** - varchar (задолжителен атрибут) * **department** - varchar (задолжителен атрибут) 4. ''**theatre**'' - ентитет кој дефинира тип на настан театар * **director** - varchar (задолжителен атрибут) * **genre** - varchar (задолжителен атрибут) * **duration** - нумерички тип (задолжителен атрибут) 5. ''**users**'' - ентитет кој претставува унија од повеќе видови корисници * **id_user** - serial (примарен клуч) * **phone_number** - varchar (задолжителен атрибут) * **name** - varchar (задолжителен атрибут) * **surname** - varchar (задолжителен атрибут) * **email** - varchar (задолжителен атрибут) * **username** - varchar (задолжителен атрибут) * **password** - bpchar (задолжителен атрибут) 6. ''**admins**'' - ентитет кој дефинира администратор кој управува со ситемот 7. ''**organizer**'' - ентитет кој дефинира организација која организира настани 8. ''**customer**'' - ентитет кој дефинира корисник кој разгледува настани и купува билети * **transaction_account** - varchar (задолжителен атрибут) 9. ''**artist**''- ентитет кој дефинира уметник кој е дел од настаните или сака да промовира свое дело * **type_of_artist** - varchar (задолжителен атрибут) 10. ''**review**'' - ентитет кој дефинира рецензии за одреден артист * **id_review** - serial (примарен клуч) * **created_at** - timestamp (задолжителен атрибут) * **rating** - нумерички тип (задолжителен атрибут) * **content** - varchar (задолжителен атрибут) 11. ''**ticket**'' - ентитет во кој ќе се чуваат податоци за резервацијата * **id_ticket** - serial (примарен клуч) * **price** - нумерички тип (задолжителен атрибут) * **type_of_event** - varchar (задолжителен атрибут) * **location** - varchar (задолжителен атрибут) * **date** - timestamp (задолжителен атрибут) 12. ''**cart**'' - ентитет во кој се чуваат резервираните билети * **id_cart** - serial (примарен клуч) * **total** - нумерички тип (задолжителен атрибут) 13. ''**transactions**'' - ентитет кој дефинира трансакција * **id_transaction** - serial (примарен клуч) * **name** - varchar (задолжителен атрибут) * **edited_at** - timestamp (задолжителен атрибут) * **created_at** - timestamp (задолжителен атрибут) * **id_invoice** - нумерички тип (задолжителен атрибут) 14. ''**seat**'' - ентитет во кој ќе се чуваат податоци за седиште * **id_seat** - serial (примаерен клуч) * **number** - нумерички тип (задолжителен атрибут) ''**Релации**'' * ''**promotes**'' - 1:N релација помеѓу Artist и Event каде се означува настанот кој независниот уметник сака да промовира свое дело * ''**has_ticket**'' - 1:N релација, со тотално учество од двете страни, помеѓу Event и Ticket која го означува билетот кој што се однесува на даден настан * ''**has_seat**'' - 1:N идентификувачка релација помеѓу Event и Seat која го означува седиштето кој што се однесува на даден настан, односно настанот го идентификува слабиот ентитет Seat * ''**creates_profile**'' - 1:N релација помеѓу Admin и Artist каде администраторот креира посебни профили за секој уметник и имаме тотално учество од страната на ентитетот Artist што значи дека профилот на еден уметник мора да е креиран од админ * ''**buys**'' - 1:N релација помеѓу Customer и Ticket што ни означува дека купувачот купил билет * ''**owns**'' - 1:1 идентификувачка релација помеѓу Customer и Cart со која се означува секоја кошничка која ја поседува купувачот. Купувачот го идентификува слабиот ентитет Cart и има тотално учество од страната на ентитетот Customer бидејќи еден купувач мора да има една кошничка * ''**leaves**'' - 1:N релација помеѓу Customer и Review со која купувачот може да ги оценува настаните кои ги посетил * ''**left_for**'' - 1:N релација помеѓу Artist и Review која ни ги покажува оставените рецензии за секој уметник * ''**includes**'' - 1:N релација помеѓу Cart и Ticket која означува кој билет се содржи во кошничката * ''**refers_to**'' - 1:1 релација помеѓу Cart и Transaction која ја означува наплатата за билетите и една трансакција мора да се однесува на една кошничка, па затоа има тотално учество од страната на ентитетот Transaction * ''**artist_exhibits_gallery**'' - N:M релација помеѓу Gallery и Artist со која се означува дадениот уметник кој ја прави изложбата и има тотално учество од страната на ентитетот Gallery бидејќи мора да е изложена од некој уметник * ''**artist_acts_theatre**'' - N:M релација помеѓу Theatre и Artist со која се означува актерот кој што е дел од претставата со тотално учество од страната на ентитетот Theatre бидејќи мора да има уметници кои глумат во претставата * ''**organizes**'' - 1:N релација помеѓу Organizer и Event со која се означува која организација го организира настанот со тотално учество од страната на ентитетот Event кој мора да е организиран од некој организатор * ''**intended_for**'' - 1:N идентификувачка релација помеѓу Seat и Ticket со која се означува билет за театар, доколку билетот има седиште == ''Историјат'' **[[attachment:"ER_Model_V1.jpg" |1. Верзија 1]]** - Иницијален ER дијаграм **[[attachment:"ER_Model_V2.jpg" |2. Верзија 2]]** - Направени се следните модификации: * Додаден атрибут 'type_of_artist' на ентитетот 'Artist'; * Додадено задолжително учество од страна на ентитетот 'Transaction' во релацијата 'refers_to'. **[[attachment:"ER_Model_V3.jpg" |3. Верзија 3]]** - Направени се следните модификации: * по сугестија на професорот, наместо релација меѓу Event и Ticket и релација меѓу Ticket и Seat, сменето е во релација меѓу Еvent и Seat и реалација меѓу Seat и Ticket и е додадена релација меѓу Event и Ticket * по сугестија на демонстраторката направена е промена на релацијата owns, така што релацијата сега е идентификувачка, ентитетот Customer го идентификува слабиот ентитет Cart **[[attachment:"ER_Model_V4.jpg" |1. Верзија 4]]** - Променети се слабите ентитети Seat и Cart во силни ентитети за да соодветствува со релациските шеми.