= Верзија 4 = == Дијаграм == [[Image(ERModel_v4.jpg)]] == Податочни побарувања == === Ентитети === * '''Person''' – ентитет што претставува човек * Кандидат клучеви * id_person – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * name – текстуален тип (String), максимум 15 карактери, задолжителен * surname – текстуален тип (String), максимум 15 карактери, задолжителен * address – текстуален тип (String), максимум 50 карактери, задолжителен * town – текстуален тип (String), максимум 15 карактери, задолжителен * phone_num – текстуален тип (String), максимум 20 карактери, задолжителен * '''Employee''' – ентитет што претставува вработен во библиотеката * Атрибути * position – текстуален тип (String), максимум 15 карактери, задолжителен * '''Member''' – ентитет (корисник) што претставува член во библиотеката, има членство во истата * Атрибути * birth – тип датум(Date), задолжителен * email – текстуален тип (String), максимум 60 карактери, задолжителен * pass – текстуален тип (String), максимум 20 карактери, задолжителен * **SchoolType** – ентитет што претставува во каков тип на школо е во момент корисникот * Кандидат клучеви * id_school – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * primary – енум тип, задолжителен * high_school – енум тип, задолжителен * other – енум тип, задолжителен * **MembershipType** – ентитет што претставува какво членување избира корисникот * Кандидат клучеви * id_membership – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * month – енум тип, задолжителен * year – енум тип, задолжителен * '''Price''' – ентитет што претставува која цена треба да ја плати корисникот * Кандидат клучеви * id_price – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * month_price – нумерички тип (Int), задолжителен, (цена за еден месец членување во библиотеката) * year_price – нумерички тип (Int), задолжителен, (цена за една година членување во библиотеката) * primary_price – нумерички тип (Int), задолжителен, (цена за една година членување во библиотеката за ученици од основно образование) * highSchool_price – нумерички тип (Int), задолжителен, (цена за една година членување во библиотеката за ученици од средно образование) * '''OnlineDownload''' – слаб ентитет што претставува симнување на некоја книга online * Кандидат клучеви * id_onlineDown – примарен клуч, нумерички тип (Long), задолжителен * '''ReservationBook''' – слаб ентитет што претставува резервирање на некоја книга * Кандидат клучеви * id_resBook – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * take_date – тип датум (Date), задолжителен * return_date – тип датум (Date), задолжителен * '''ReservationPlace''' – слаб ентитет што претставува резервирање на место во одредена просторија * Кандидат клучеви * id_resRoom – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * date – тип датум (Date), задолжителен * duration – тип време (Time), задолжителен * '''Library''' – ентитет што ја претставува библиотеката * Кандидат клучеви * id_library – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * name – текстуален тип (String), максимум 50 карактери, задолжителен * city – текстуален тип (String), максимум 15 карактери, задолжителен * '''Room''' – ентитет што претставува просторија за учење или читање во библиотеката * Кандидат клучеви * id_room – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * places – нумерички тип (Int), задолжителен, (означува колку места има во една просторија во библиотеката) * free_places – нумерички тип (Int), задолжителен, (означува уште колку слободни места се останати во просторијата) * '''Book''' – слаб ентитет што претставува книга во библиотеката * Кандидат клучеви * Id_book – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * name – текстуален тип (String), максимум 70 карактери, задолжителен * book_num – нумерички тип (Int), задолжителен, (означува колку копии или изданија има во библиотеката од конкретна книга) * is_free – булеан тип (Bool), задолжителен * book_price – нумерички тип (Int), задолжителен, (цена на книга за изнајмување) * book_price_late – нумерички тип (Int), задолжителен, (цена на книга ако се врати со задоцнување) * '''Genre''' – ентитет што ги претставува типовите на жанрови * Кандидат клучеви * id_genre – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * name – енум тип, задолжителен * '''Review''' – ентитет што претставува review на некоја книга * Кандидат клучеви * id_review – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * rent_num – нумерички тип (Int), задолжителен, (колку пати е симната или изнајмена некоја книга) * rate – нумерички тип (Int), задолжителен, (која оценка и ја даваат читателите на книгата која што ја прочитале) * '''Writer''' – ентитет што ги претставува писател на книга * Кандидат клучеви * Id_writer – примарен клуч, нумерички тип (Long), задолжителен * Атрибути * Name – текстуален тип (String), максимум 70 карактери, задолжителен book_num – нумерички тип (Int), задолжителен, (изведен атрибут и означува колку книги има библиотеката од конкретен писател) === Релации === * '''work''' – оваа релација ги поврзува ентитетите Library и Employee, и означува дека во една библиотека работат повеќе вработени. * '''isMember ''' - оваа релација ги поврзува ентитетите Library и Member, и означува дека во една библиотека членуваат повеќе луѓе. Member има тотално учество бидејќи во членувањето во библиотеката. * '''isIn''' - оваа релација ги поврзува ентитетите Member и SchoolType, и означува дека еден член може да избере или да има еден училишен тип. * '''chooses ''' - оваа релација ги поврзува ентитетите Member и MembershipType, и означува дека еден член може да има еден тип на чланарина во библиотеката. * '''has''' - оваа релација ги поврзува ентитетите SchoolType и MembershipType, и означува дека повеќе училишни типови имаат повеќе типови на месечна чланарина кои ги нудат. * '''paysFor''' - оваа релација ги поврзува ентитетите MembershipType и Price, и означува која цена ќе ја плаќа корисникот, односно дека за еден тип на членување ќе плаќа една цена. * '''downloads''' – оваа релација ги поврзува ентитетите Member и OnlineDownload, и означува дека еден корисник може да направи повеќе симнувања. OnlineDownload има тотално учество, бидејќи симнувањето мора да биде направено од некој Member. * '''downloadsBook''' – оваа релација ги поврзува ентитетите OnlineDownload и Book, и означува дека за една книга може да се направат повеќе симнувања. * '''resBook''' – оваа релација ги поврзува ентитетите Member и ReservationBook, и означува дека еден корисник може да направи повеќе резервации на книги. * '''rentBook''' – оваа релација ги поврзува ентитетите Book и ReservationBook, и означува дека за една книга може да се направат повеќе изнајмувања. ReservationBook има тотално учество, бидејќи резервирањето на книга мора да биде направено од некој Member. * '''resPlace''' – оваа релација ги поврзува ентитетите Member и ReservationPlace, и означува дека еден корисник може да направи повеќе резервации за едно место. ReservationPlace има тотално учество, бидејќи резервирањето на место мора да биде направено од некој Member. * '''owns''' – оваа релација ги поврзува ентитетите Library и Book, и означува дека во една библиотека има повеќе книги. Book има тотално учество во оваа врска, бидејќи една библиотека мора да поседува книги. * '''hasRooms''' – оваа релација ги поврзува ентитетите Library и Room, и означува дека во една библиотека има повеќе простории. * '''hasPlaces''' – оваа релација ги поврзува ентитетите Room и ReservationPlace, и означува дека една просторија има повеќе места. * '''hasGenre''' – оваа релација ги поврзува ентитетите Book и Genre, и означува дека една книга може да има еден жанр. * '''reviews''' – оваа релација ги поврзува ентитетите Book и Review, и означува дека за една книга може да има повеќе reviews. * '''wrote''' – оваа релација ги поврзува ентитетите Book и Writer, и означува дека една книга може да има повеќе писатели, и дека повеќе писатели може да имаат напишано една книга. Writer има тотално учество во оваа врска, бидејќи една книга не може да нема писател. == Историјат: == * '''[wiki:ERmodel_v1.png Верзија 1]''' - креирани сите атрибути и релации. * '''[wiki:ERModel_v2.png Верзија 2]''' - креирани сите атрибути и релации. * '''[wiki:ERModel_v3.png Верзија 3]''' - креирани сите атрибути и релации. * '''[wiki:ERModel_v4.png Верзија 4]''' - креирани сите атрибути и релации.