= ФАЗА 2 - Релационен модел == ЕР Дијаграм [[Image("ER DIJAGRAM ZA AVTOSALON.2.webp", 1100px)]] = Опис на ER дијаграм за автосалон = Овој ER дијаграм претставува база на податоци за автосалон. Во него се прикажани табелите, нивните атрибути и врските меѓу табелите. Главната цел на базата е да го опише процесот на работа во автосалон: возила, клиенти, вработени, конфигурации, тест возења, нарачки, договори, продажби, плаќања и попусти. == Главна идеја == Главниот процес во базата може да се прикаже вака: {{{ возило → конфигурација → нарачка → договор → продажба → плаќање → попуст }}} Клиентот избира возило, може да направи конфигурација, потоа се креира нарачка, договор, продажба и плаќање. Доколку има попуст, тој се евидентира во посебна табела. == Vehicle == Централна табела во дијаграмот е '''Vehicle'''. Оваа табела ги чува податоците за возилата, како VIN број, модел, статус, тип на возило, боја, цена, година на производство и мотор. '''Vehicle''' е поврзана со: * '''Model''' — модел на возилото * '''Status''' — статус на возилото * '''VehicleType''' — тип на возило * '''Engine''' — мотор на возилото == Brand, Model, Status и VehicleType == Овие табели служат за опис на возилата. '''Brand''' ги чува брендовите, на пример BMW, Audi, Toyota. '''Model''' ги чува моделите на возилата. Еден бренд може да има повеќе модели. '''Status''' покажува дали возилото е достапно, резервирано, продадено итн. '''VehicleType''' покажува дали возилото е Sedan, SUV, Hatchback и слично. Релациите се: {{{ Brand 1 → N Model Model 1 → N Vehicle Status 1 → N Vehicle VehicleType 1 → N Vehicle }}} == Engine и EngineType == '''EngineType''' го чува типот на моторот: * Petrol * Diesel * Hybrid * Electric '''Engine''' чува податоци за конкретен мотор, како број на мотор, коњски сили и тип на мотор. Еден тип на мотор може да се користи кај повеќе мотори, а еден конкретен мотор е поврзан со едно возило. == Factory, Production и Address == '''Factory''' ги чува фабриките. '''Production''' покажува кое возило во која фабрика се произведува и каков е статусот на производството. '''Address''' чува адреси. Адресата може да биде или за клиент или за фабрика. == Customer, Configuration и TestDrive == '''Customer''' ги чува податоците за клиентите: име, презиме, email, телефон и датум на креирање. '''Configuration''' претставува конфигурација на возило направена од клиент. Во неа се чуваат возилото, описот, вкупната цена, датумот и клиентот. '''TestDrive''' чува податоци за пробно возење: клиент, возило, датум, време на почеток, време на крај и резултат. Релациите се: {{{ Customer 1 → N Configuration Vehicle 1 → N Configuration Customer 1 → N TestDrive Vehicle 1 → N TestDrive }}} == EquipmentType, EquipmentPackage и PackageElement == Овој дел се однесува на опремата на возилата. '''EquipmentType''' го означува типот на опрема, на пример Safety, Comfort, Infotainment. '''EquipmentPackage''' претставува пакет на опрема, на пример Base, Winter, Sport, Luxury. '''PackageElement''' претставува конкретен елемент од пакетот, како ABS, Heated Seats, Navigation и слично. Релациите се: {{{ EquipmentType 1 → N EquipmentPackage EquipmentPackage 1 → N PackageElement }}} == ConfigurationPackage и ConfigurationElement == '''ConfigurationPackage''' ја поврзува конфигурацијата со пакетите на опрема. Ова е many-to-many врска, затоа што една конфигурација може да има повеќе пакети, а еден пакет може да се користи во повеќе конфигурации. '''ConfigurationElement''' ги поврзува пакетите со конкретните елементи на опрема. == Order, Contract, Sale, Payment и Discount == Овој дел го претставува продажниот процес. '''Order''' е нарачка направена од клиент за одредена конфигурација. '''Contract''' е договор поврзан со нарачката, клиентот, вработениот и возилото. '''Sale''' е продажба која произлегува од договор. '''Payment''' е плаќање за продажбата. '''Discount''' е попуст поврзан со одредено плаќање. Редоследот е: {{{ Order → Contract → Sale → Payment → Discount }}} == Employee == '''Employee''' ги чува податоците за вработените: позиција, име, презиме, email, телефон, датум на вработување и менаџер. Вработените учествуваат во: * нарачки * договори * продажби * попусти Табелата има и '''manager_id''', што значи дека еден вработен може да има друг вработен како менаџер. == Краток заклучок == Овој ER дијаграм прикажува целосен систем за автосалон. Главна табела е '''Vehicle''', бидејќи околу неа се поврзуваат моделите, моторите, производството, тест возењата, конфигурациите и продажбите. Клиентите можат да прават конфигурации, тест возења и нарачки. Вработените учествуваат во продажниот процес. Фабриките се поврзани со производството, а опремата се организира преку пакети и елементи. Наједноставно кажано, базата го покрива целиот процес од возило во автосалон до негова продажба.