= Верзија 3 = == Дијаграм == [[Image(ERmodel_v3.jpg)]] == Податочни побарувања == === Ентитети === * '''Persons''' - Ентитет што дефинира заеднички својства на даден актер и режисер. * Кандидат клучеви * person_id - примарен клуч, вештачки пресметан, нумерички тип, задолжителен * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * name - текстуален тип, максимум 150 знаци * surname - текстуален тип, максимум 150 знаци * date_of_birth - timestamp * image_url - текстуален тип, максимум 250 знаци * description - текстуален тип, максимум 500 знаци * user_ratings - изведен атрибут, нумерички, помеѓу 0 и 5 * '''Directors''' - Ентитет што репрезентира даден режисер. * Кандидат клучеви * person_id - примарен клуч, вештачки пресметан, нумерички тип, задолжителен * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * name - текстуален тип, максимум 150 знаци * surname - текстуален тип, максимум 150 знаци * date_of_birth - timestamp * image_url - текстуален тип, максимум 250 знаци * description - текстуален тип, максимум 500 знаци * user_ratings - изведен атрибут, нумерички(помеѓу 0 и 5) * '''Actors''' - Ентитет што репрезентира даден актер. * Кандидат клучеви * person_id - примарен клуч, вештачки пресметан, нумерички тип, задолжителен * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * name - текстуален тип, максимум 150 знаци * surname - текстуален тип, максимум 150 знаци * date_of_birth - timestamp * image_url - текстуален тип, максимум 250 знаци * description - текстуален тип, максимум 500 знаци * user_ratings - изведен атрибут, нумерички(помеѓу 0 и 5) * '''Movies''' - Ентитет што репрезентира даден филм. * Кандидат клучеви * movie_id - примарен клуч, вештачки пресметан, нумерички тип, задолжителен * Атрибути * imbd_rating- текстуален тип, максимум 150 знаци * user_ratings - изведен атрибут, нумерички, помеѓу 0 и 5 * title - текстуален тип, максимум 150 знаци, задолжителен * image_url - текстуален тип, максимум 250 знаци * description - текстуален тип, максимум 500 знаци * airing_date - timestamp * '''Users''' - Ентитет што репрезентира даден корисник. * Кандидат клучеви * user_id - примарен клуч, вештачки пресметан, нумерички тип, задолжителен * Атрибути * username - текстуален тип, максимум 150 знаци, задолжителен * name - текстуален тип, максимум 150 знаци * surname - текстуален тип, максимум 150 знаци * email - текстуален тип, максимум 150 знаци, задолжителен * password- текстуален тип, максимум 50 знаци, задолжителен * '''Discussions''' - Ентитет што дефинира заеднички својства на дискусија за филм и актер. * Кандидат клучеви * dissucssion_id - примарен клуч, вештачки креиран, нумерички тип, задолжителен * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * text - текстуален тип, максимум 250 знаци, задолжителен * title - текстуален тип, максимум 150 знаци, задолжителен * date - timestap, задолжителен * likes - изведен атрибут, нумерички тип * dislikes - изведен атрибут, нумерички тип * '''Replies''' - Ентитет што репрезентира реплика. * Кандидат клучеви * reply_id - парцијален клуч, вештачки креиран, задолжителен, нумерички тип * Атрибути * text - текстуален тип, максимум 250 знаци, задолжителен * date - timestap, задолжителен * likes - изведен атрибут, нумерички тип * dislikes - изведен атрибут, нумерички тип * '''Movie-Discussions''' - Ентитет што репрезентира дискусија за филм. * Кандидат клучеви * discussion_id - примарен клуч, вештачки креиран, задолжителен, нумерички тип * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * title - текстуален тип, максимум 150 знаци, задолжителен * text - текстуален тип, максимум 250 знаци, задолжителен * date - timestap, задолжителен * likes - изведен атрибут, нумерички тип * dislikes - изведен атрибут, нумерички тип * '''Actor-Discussions''' - Ентитет што репрезентира дискусија за филм. * Кандидат клучеви * discussion_id - примарен клуч, вештачки креиран, задолжителен, нумерички тип * Атрибути * type - текстуален тип, максимум 1 знак, задолжителен * text - текстуален тип, максимум 250 знаци, задолжителен * date - timestap, задолжителен * likes - изведен атрибут, нумерички тип * dislikes - изведен атрибут, нумерички тип * '''Genres''' - Ентитет што репрезентира жанр. * Кандидат клучеви * genre_id - примарен клуч, вештачки креиран, нумерички тип, задолжителен * Атрибути * type - текстуален тип, максимум 150 знаци, задолжителен === Релации === * '''directs_in''' - релација што ги поврзува ентитетите Directors и Movies и посочува кој е режисерот на филмот. Филмот може да има само еден режисер, додека режисерот може да биде режисер на повеќе филмови. * '''acts_in''' - релација што ги поврзува ентитетите Actors и Movies и означува кој актер глуми во одреден филм. Во филмот може да глуми барем еден актер, додека актерот може да глуми барем во еден филм. * '''is_from_genre''' - релација што ги поврзува ентитетите Movies и Genres и означува на кој жанр припаѓа даден филм. Филмот мора да припаѓа барем на еден жанр, додека жанр може да биде доделен на повеќе филмови. * '''discussion_for_movie''' - релација што ги поврзува ентитетите МovieDiscussions и Movies и означува отворена дискусија за одреден филм. Филмот може да има повеќе отворени дискусии, додека дискусијата мора да се однесува само за еден филм. * '''rates_movies''' - релација што ги поврзува ентитетите Movies и Users и посочува оставен рејтинг и мислење за филм од страна на корисник. Корисникот може да остави рејтинг и мислење за повеќе филмови и филмот може да добие рејтинг и мислење од повеќе корисници. * '''discussion_for_person''' - релација што ги поврзува ентитетите ActorDiscussions и Persons и означува отворена дискусија за личност. За личноста може да има отворено повеќе дискусии, додека дискусијата мора да се однесува само за една личност. * '''rates_person''' - релација што ги поврзува ентитетите Persons и Users и посочува оставен рејтинг и мислење за личност од страна на корисник. Корисникот може да остави рејтинг и мислење за повеќе личности и личноста може да добие рејтинг и мислење од повеќе корисници. * '''likes_genres''' - релација што ги поврзува ентитетите Persons и Genres и посочува на корисникот кој жанр му се допаѓа. Корисникот може да му се допаѓаат повеќе жанрови и жанрот може да им се допаѓа на повеќе корисници. * '''opens_discussion''' - релација што ги поврзува ентитетите Persons и Discussions и посочува отворена дискусија за филм или актер од страна на корисник. Корисникот може да отвори повеќе дискусии за филм или актер, додека дискусијата мора да биде отворена од еден корисник. * '''replies_to''' - релација што ги поврзува ентитетите Persons и Replies и посочува реплика за филм или актер од страна на корисник. Корисникот може да отвори повеќе дискусии за филм или актер, додека репликата мора да биде отворена од еден корисник. * '''reply''' - релација што ги поврзува ентитетите Discussions и Replies и посочува реплика на отворена дискусија. Дискусијата може да има повеќе реплики, додека репликата мора да се однесува за една дискусија. == Историјат: == * '''[wiki:ERModel_v1.jpg Верзија 1]''' - креирани сите атрибути и релации. * '''[wiki:ERModel_v2.jpg Верзија 2]''' - се направени следниве модификации во согласност со тикетот на асистентот: * Избришан ентитет DiscussionElements. * Discussions претворен во силен ентитет. * Додадено задолжително учество од страна на Movies во релацијата directs_in. * Избришан повеќевредносниот атрибут genres кај Movies и Users и истиот заменет со ентитет Genres во релација со Movies и Users. * '''[wiki:ERModel Верзија 3]''' - се направени следниве корекции: * Релациите rates_movie и rates_person претворени во многу-многу релација. * Додадени вештачки нумерички клучеви кај ентитетите Persons и Genres. * Додаден type атрибут од текстуален тип кај ентитет Genres. * Во релациите directs_in и acts_in, се тргнати задолжителните учество од ентитет Movie. * Кај ентитет Discussions додаден текстуален атрибут type за означување дали припаѓа на MoviesDiscussions или PersonDiscussions. * Кај ентитет Persons атрибут is_actor сменет во type.