Projekt 1 - Database. Cphbusiness Lyngby Multimediedesigner, 3. semester. MulB13e, gruppe 4



Relaterede dokumenter
3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Jayne Alice Jensen [Link til portfolio]

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

3. semester, 2. projekt: Database

Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester Vejledere: Tue Becher Ivan R. Frederiksen

DATABASE Projekt 1-3. semester

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Views etc. Databaser

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari

PROJEKT WEB_DB CROWDFUNDING

Data lagring. 2. iteration (implement backend)

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

Introduktion til SQL queries

Eksamen, DSDS, efterår 2008

CFunding-IT. Web DB Multimediedesigner 3. Semester Gruppe 15

Titel: Database 1. projekt - 3. semester Multimediedesigner uddannelsen - Lyngby

WebSite og databaseprojekt

Eksamen, DSDS, efterår 2007

Gruppe nr. MULB2, Multimediedesign 3. semester hold B. Tue Becher Jesper Hinchely

Web DB project semester - 3. projekt - Gruppenr. 23 MULA - September 2015

My Shop. Funktioner, oversigt: Kom i gang: Online shop system

Dataanalyse og databaser

Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen cph-sl176@cphbusiness.dk. Anastasia Keller cph-ak186@cphbusiness.

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Brugervejledning til udfyldelse og udstedelse af Europass Mobilitetsbevis i Europass Mobilitetsdatabasen

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Arvid Nilsson Webshop Adgang til webshoppen

Database design for begyndere

Sådan kommer du i gang med at handle på Berners WEBshop

09/ Version 1.4 Side 1 af 37

My booking. Generelt. Forsiden. Version 9.0

I denne manual kan du finde en hurtig introduktion til hvordan du:

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ADMIN

My Event. Funktioner, en oversigt: Kom i gang: Online tilmeldings system.

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

For at komme videre er det nødvendigt at vælge punktet Produkter i menuen til venstre. Her kan du navigere dig rundt på shoppen.

DB undervisning 01-01

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Menuen E-shop har 4 undermenupunkter: Varer, Kunder, Ordrer og Opsætning.

TRIN FOR TRIN GUIDE VELUX Tilbudsberegner

Kvikmanual til FacilityNet

18/ Version 2.0 Side 1 af 36

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

ADMINISTRATIONS MANUAL

Sådan bruger du Go Madpak

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING

Tagwall med Php & MySQL

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Vejledning til brug af Y s Men s klubintranet administrator guide

e-konto manual e-konto manual Side 1

Installation af WeroShop 2.4 S

Vejledning til registrering som bruger til EudraCT results

Conventus og SFGIF Hvordan opretter jeg en ny træner?

Ansøgningsportalen. Loginvejledning, tips og hjælp

Dannelse af PDF dokumenter

Indholdsfortegnelse Dankort og kreditkort...2 Betalingsgateway...2 Flytte aftale hos PBS...2 Etablere ny aftale hos PBS...5 Håndtering af ordrer...

Projekt 1 - Database. Indholdsfortegnelse. Intro...4 Indledning...5 Projektbeskrivelse...5 Problem felt...6 Problem formulering...

Interaktionsudvikling

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

BRUGERMANUAL FOR KLUBKOORDINATORER. Version 2.0

ViKoSys. Virksomheds Kontakt System

Brugermanual PoP3 og Outlook Office 2003 Webmail Udarbejdet af IT-afdelingen 2005

Brugermanual. PoP3 og Outlook Express Webmail Udarbejdet af IT-afdelingen 2005

Vejledning om tilmelding til Register for køb af ammoniumnitratgødning

Introduktion. Unifaun Online

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

BRUGERVEJLEDNING MAGENTO RETURVARER BRUGERVEJLEDNING RETURVARER MODUL VERSION Version

e-conomic modul til Magento

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Nyhedsbrev #83. Vejledning - Sådan handler du i min butik. Søgning og fremfinding af varer

cpos Online Quickguide Version Roskilde Unitec - Højvangen 4 - DK-3480 Fredensborg

Transkript:

Cphbusiness Lyngby Multimediedesigner, 3. semester MulB13e, gruppe 4 September 2014 http://www.designduck.dk/cph/trorodvin create table costumers ( cno INT(4) Primary key AUTO_INCREMENT, cname VARCHAR(30) NOT NULL CHECK(Da street VARCHAR(35) NOT NULL, zip INT(4) NOT NULL, cemail VARCHAR(45) NOT NULL, cphone VARCHAR(20), pw VARCHAR(30) NOT NULL, sno INT(4) NOT NULL, FOREIGN KEY (zip) REFERENCES zip(zip), FOREIGN KEY (sno) REFERENCES sector(sno ) engine=innodb; create table employees ( eno INT(4) Primary key AUTO_INCREMENT ename VARCHAR(30) NOT NULL, street VARCHAR(35), zip INT(4) NOT NULL, eemail VARCHAR(45) NOT NULL, ephone VARCHAR(20), pw VARCHAR(30) NOT NULL, FOREIGN KEY (zip) REFERENCES zip(zip) ) engine=innodb;

Faktaark Projekt titel: Projekt 1 - Database Klasse: Mulb13e Gruppenummer: 4 Hjemmeside link: http://www.designduck.dk/cph/trorodvin Steffen Marschall Mail: cph-sm148@cphbusiness.dk Portfolio: http://steffenmarschall.com Martin Ungermann Stæhr Mail: cph-ms20@cphbusiness.dk Portfolio: http://martinstaehr.dk Patrick Bomann Tofteng Mail: cph-pt60@cphbusiness.dk Portfolio: http://patricktofteng.dk/cph/1.semester/portfolio/index.php Erik Andreas Münter Mail: cph-em38@cphbusiness.dk Portfolio: cph.designduck.dk 2

Indholdsfortegnelse 2 Faktaark 3 Indholdsfortegnelse 4 Indledning 4 Projektplanlægning 5 Gantt kort 6 ER-Diagram 7 Attribute tabel 9 SQL kode 10 USECASE MODEL 11 UC1 Opret burger 13 UC2 Opret ordre 15 UC3 Opret produkt (Admin) 17 Navigations diagram / Site map 18 CRUD matrix 19 Prototype hjemmeside 20 Aktivitets diagram 21 Bilag 1 - SQL statement UC1 / opret bruger 22 Bilag 2 - SQL statement UC3 / opret ordre 23 Bilag 3 - SQL statement UC3 / opret produkt 3

Indledning Dette projekt skulle vi lave en webshop database for et firma efter vores eget valg. Vi valgte at arbejde med Trørød vinhandel, som vores firma. Databasen skulle opsættes i 3. normalform. Projektplanlægning Vi startede med at tjekke vores opgave igennem og lave en PBS (set herunder) for hvilke produkter der skulle komme ud af denne aflevering. Efter dette valgte vi at udarbejde et gantt kort, som oversigt af vores projekt og tidsforbrug for hver del af projektet. Se Gantt kort på næste side (side 5) 4

Gantt kort 5

ER-Diagram Efter udviklingen af en attribute tabel gik vi igang med sammensætningen af et ER-diagram, ved at skrive database koden i sql. Vi har dog valgt at fremvise ER-diagrammet først i denne rapport. Da det giver et bedre billede for læseren over vores attribute tabel. Som bliver beskrevet på de næste sider. Vores database endte op med at indeholde 10 entiteter, som alle indeholder forskellige typer af attributer. 6

Attribute tabel En attribute tabel bruges som en hurtig måde at få et overblik over en database opsætning. Herunder findes vores attribute tabel, delt op i database tabellerne, med en kort forklaring for hver tabel, hvor vi mente at en forklaring var et behov. Entity Attributes Value Notes Datatype products pno 1-9999 (INT) Unique no. N pname A - Å (VARCHAR) Max. 30 char AN price 10,2 (DECIMAL) Currency Currency stno 1-9999 (INT) Number N qty 1-9999 (INT) Number N mqty 1-9999 (INT) Number N nno 1-9999 (INT) Number N rno 1-9999 (INT) Number N tno 1-9999 (INT) Number N mintemp 1-99 (INT) Number N maxtemp 1-99 (INT) Number N pdesc (TEXT) Text = 65,535 AN fig. 1.1 products I denne tabel findes data over produkter. pno pno er primary key, som auto_increment er (A_I) nye produkter med et unikt produkt nummer. price Vi har en price der er opsat med DECIMAL for at kunne lave priser med 2 decimaler. fx. 199,95 kr. Entity Attributes Value Notes Datatype country nno 1-9999 (INT) Unique no. N nname A - Å (VARCHAR) Max. 70 char AN fig. 1.2 country I denne tabel findes data over lande nno Primary key, der A_I er nye lande. Så de alle har et unikt nummer. nname Opsat med VARCHAR da den skal indeholde landenavne, og skrevet med sql koden således at numre ikke kan forekomme i databasen. Entity Attributes Value Notes Datatype region rno 1-9999 (INT) Unique no. N rname A - Å (VARCHAR) Max. 70 char AN nno 1-9999 (INT) Number N fig. 1.3 region I denne tabel findes data over region/områder nno Her fungerer nno som foreign_key til tabellen country s nno for at hente ned hvilken region der hører til hvilket land. Entity Attributes Value Notes Datatype ptype tno 1-9999 (INT) Unique no. N type A - Å (VARCHAR) Max. 50 char AN fig. 1.4 ptype I denne tabel findes data over produkt typer (rød-, hvid-, mousserende -, dessert- og portvin). Fungerer som country tabellen med unikt nummer pr. type. 7

Entity Attributes Value Notes Datatype costumers cno 1-9999 (INT) Unique no. N cname A - Å (VARCHAR) Max. 30 char AN street A - Å (VARCHAR) Max. 35 char AN zip 1-9999 (INT) Number N cemail (VARCHAR) Max. 45 char AN cphone (VARCHAR) Max. 20 char AN pw (VARCHAR) password 30 char AN sno 1-9999 (INT) Number N fig. 1.5 costumers I denne tabel findes data over kunder/registrede brugere. I vores webshop skal man registrere sig som kunde før du kan købe hvad du har i din kurv. Vi mente at det gav rigtig god mening, da folk som handler i små vinhandler via nettet. Ofte ender op med at være tilbagevendende kunder. pw password. I modsætning til vores navne er det her muligt at bruge alle karakterer, symboler og tal til sin kode. Dog max 30 tegn. Entity Attributes Value Notes Datatype sector sno 1-9999 (INT) Number N sname A - Å (VARCHAR) Max. 20 char AN fig. 1.6 sector I denne tabel findes data over branche. Hvilken branche vores registrede kunder arbejder i. Entity Attributes Value Notes Datatype zip zip 1-9999 (INT) Number N city A - Å (VARCHAR) Max. 30 char AN fig. 1.7 zip I denne tabel findes data over postnumre. Alle danske postnumre er tastet ind i vores database. zip Zip er ikke skrevet til at A_I. Da postnummeret allerede er unikt fra hinanden. city Ved hjælp af zip nummeret kan man hente bynavnet op til eventuelt kunde - eller ansattes adresser. Entity Attributes Value Notes Datatype employees eno 1-9999 (INT) Unique no. N ename A - Å (VARCHAR) Max. 30 char AN street A - Å (VARCHAR) Max. 35 char AN zip 1-9999 (INT) Number N eemail (VARCHAR) Max. 45 char AN ephone (VARCHAR) Max. 20 char AN pw (VARCHAR) password AN fig. 1.8 employees I denne tabel findes data over ansatte. Den fungerer som costumers tabellen, dog har vi fjernet sno (sector), da vi allerede ved hvilken branche vores ansatte arbejder i. 8

Entity Attributes Value Notes Datatype orders ono 1-9999 (INT) Unique no. N cno 1-9999 (INT) Number N ordate DD-MM-YYYY(DATE) Date AN osdate DD-MM-YYYY(DATE) Date AN fig. 1.9 orders I denne tabel findes data over ordre. ordate Orders recieved date. Via vores hjemmesides php kode henter den automatisk den nuværende dato og skriver datoen ind når man modtager en ordre. osdate Orders shipped date. Admin har mulighed i deres admin menu at godkende ordre og sende dem afsted. Entity Attributes Value Notes Datatype odetails ono 1-9999 (INT) Number N pno 1-9999 (INT) Number N qty 1-9999 (INT) Number N fig. 2.0 odetails I denne tabel findes data over ordre detajler. Da der kan forekomme mange ordre og produkter sammen. Bliver vi nød til at have en ekstra tabel der regner ud hvilke ordre der har hvilke produkter og hvor mange af dem der skal bruges. ono, pno Fungerer begge som primary keys. Da man ellers ikke kan fjerne ordre detajler efter udført eller ved fejl bestilling. SQL kode Al SQL kode findes som vedhæftede filer i.zip folderen i underfolderen: SQL filer Database opbygningen Opsætning og sammensætningen af databasens tabeller Filnavn: database-build.sql Database data Info der skal puttes ind i databasen. Filnavn: database-data.sql Database SQL statements Statements for Use Cases. Findes også som bilag 1,2 og 3 i denne rapport. De findes sidst i rapporten. Filnavn: database-statements.sql Zip / postnumre Postnumre sql koden fylder 1180 linier. Da den indeholder alle danske postnumre. Derfor har vi valgt at skille den fra resten af koden. Filnavn: database-zip.sql Få koden til at virke med databasen For at få koden ind i databasen, skal den printes i den rigtige rækkefølge. 1. database-build.sql 2. database-zip.sql 3. database-data.sql 9

USECASE MODEL Opret/rediger bruger Opret/slet/rediger ordre Tilføj/slet/rediger produkt Bruger Slet bruger Admin Brugerprofil - handlinger Adminprofil - handlinger 10

UC1 Opret burger Name: Bruger oprettelse Identifier: UC1 Description: Denne use case illustrerer og forklare hvad der skal ske for at en bruger kan blive oprettet som bruger på hjemmesiden. Goal: At få oprettet en bruger. Preconditions Websitet skal være loaded og brugeren skal udfylde formularen 1. Bruger oprettelses delen af databasen skal være sat op og funktionel Assumptions Brugeren har en browser. Brugeren ønsker at bestille varer. Frequency: Denne use case er estimeret til at foregå så ofte som 10 gange månedligt, ved at tage virksomhedens volume til eftertanke samt dens potentielle målgruppe. Basic Course 1. Use case begynder ved at en potentiel bruger kommer ind på hjemmesiden og vil bestille noget vin, brugeren vil hermed stille og roligt navigere imod opret bruger da dette er den bedste mulighed for en hurtig transaktion og i tilfælde af at kunden er tilbagevendende. 2. Brugeren indtaster hans/hendes oplysninger i oprettelses formularen step by step og godkender betingelser etc. 3. Brugerens oplysninger er nu blevet sendt og gemt i databasen, oprettelsen er fuldendt. Alternate Course A: Brugeren indtastede forkerte oplysninger ved brugerprofil oprettelsen Condition: Brugeren indtastede forkerte oplysninger 1. Brugeren påbegyndte oprettelsen ved at indtaste sine oplysninger og indsendte sin data, dataen indeholdte forkerte oplysninger. 2. Fejlen bliver meddelt til brugeren idét han/hun vil fuldende sin oprettelse og bliver påbedt om at ændre sine oplysninger de steder der er fejl i formularen. 3. Brugeren retter fejlene og indsender sine oplysninger, brugerens oplysninger er nu sendt og gemt i databsen, oprettelsen er fuldendt. 11

Alternate Course B: Brugeren ville bestille en vare med det samme, men oprettede alligevel en bruger 1. Condition: Brugeren ville bestille vare med det samme. 2. Brugeren kom ind på hjemmesiden og navigerede direkte ind for at bestille en vare fremfor at oprette en bruger i foerste omgang. 3. Brugeren bliver påbedt om at lave en bruger så han/hun har nemmere ved at være en tilbagevendende kunde, samt for at spare tid ved hver bestilling. 4. Brugeren indtaster hans/hendes oplysninger i formularen og indsender sine oplysninger, brugerens oplysninger er nu sendt og gemt i databsen, oprettelsen er fuldendt. 5. Efter dette bliver brugeren viderstillet tilbage til sine ordre og checkout på sin nye bruger-konto og kan fortsætte sin bestilling af vare. Post conditions Brugeren har fået sin bruger-konto oprettet og databasen er blevet opdateret med deres information. Actors Brugeren/kunden Extended Use Case UC2 Oprettelse af ordre Notes Brugeren skal så vidt som muligt blive bedt om at lave en bruger på hjemmesiden da dette vil fremskynde processen bag det at lave en bestilling, dette kan betyde at kunden er tilbagevendende. Hvis kunden bliver afbrudt mit i deres bestilling for at skulle oprette en bruger skal oprettelses formularen være kort og kontant og kun indeholde de mest essentielle dele information om brugeren, alt andet er overfladisk og kan blive indsat / redigeret af brugeren på deres profil på et andet tidspunkt. Brugeren kan ikke bestille en ordre uden at have en bruger. SQL statement: Bilag 1 - SQL statement UC1 / opret bruger 12

UC2 Opret ordre Name: Ordre oprettelse Identifier: UC2 Description: Denne use case forklare hvad der skal ske for at en bruger kan oprette en ordre i systemet Goal: At få oprettet en ordre Preconditions: Websitet skal være loaded Ordre oprettelses delen af databasen skal være funktionel Assumptions: Brugeren har et registreret log ind. Brugeren kan betale for varerne med kort/paypal lign. Frequency: Denne use case er estimeret til at foregå imellem 10-30 gange ugentligt, ved at tage virksomhedens volume til eftertanke samt dens potentielle målgruppe. Basic Course: 1. Use case begynder ved at en potentiel kunde er inde på hjemmesiden og har navigeret til produkt siden, brugeren tilføjer herefter de produkter han/hun gerne vil købe til indkøbskurven. 2. Brugeren har valgt alle de produkter han/hun godt kunne tænke sig, i de rigtige mængder og navigere nu videre til checkout via. en knap ved indkøbskurven. 3. Brugeren bliver nu spurgt om de vil registrere en bruger for at have lettere adgang til at oprette ordre hurtigere og nemmere i fremtiden brugeren kan her selv vælge om han/hun vil registrere nu og fortsætte eller blot fortsætte til checkout uden at registere en bruger. 4. Brugeren fortsatte til checkout med det samme og skal nu indtaste sine kort oplysninger eller benytte sig af evt. PayPal 5. Betalingen blev godkendt og pengene blev trukket fra brugerens konto, brugeren bliver nu præsenteret for en side der informere om at ordren blev modtaget og godkendt i systemet 6. Brugeren bliver herefter viderstillet fra forrige side til forsiden/forrige side inden checkout. 13

Alternate Course A: Brugeren opretter en brugerprofil inden han/hun færdiggøre sin ordre. Condition: Brugeren valgte at oprette en bruger lige inden checkout 1. Brugeren valgte de vare han/hun gerne ville købe og gik videre til checkout 2. Brugeren bliver spurgt om de vil oprette en bruger inden checkout og opretter derefter en bruger istedet for at gå direkte til checkout 3. Brugeren indtaster hans/hendes oplysninger i den supplerede formular på samme side, brugerens oplysninger er nu sendt og gemt i databasen 4. Brugeren bliver viderstillet til checkout for at færdiggøre deres ordre efter bruger oprettelsen er godkendt Alternate Course B: Brugeren har allerede en brugerprofil på hjemmesiden og opretter en ordre Condition: Brugeren har allerede en brugerprofil på hjemmesiden 1. Brugeren har valgt alle de produkter han/hun godt kunne tænke sig, i de rigtige mængder og navigere nu videre til checkout via. en knap ved indkøbskurven. 2. Brugeren har sine leveringsaddresse/betalingsmetode gemt på sin brugerprofil de er logget ind med derfor skal brugeren blot trykke på knappen checkout og godkende for at bestille sin ordre af de vare han/hun havde i sin indkøbskurv. Post conditions: Brugeren har bestilt en ordre på hjemmesiden til afsendelse Actors: Brugeren/kunden Extended Use Case: UC1 Oprettelse af bruger SQL statement: Bilag 2 - SQL statement UC2 / opret ordre 14

UC3 Opret produkt (Admin) Name: Produkt oprettelse Identifier: UC3 Description: Denne use case forklare hvad der skal ske for at en admin kan oprette et produkt i systemet Goal: At få oprettet et produkt Preconditions: Websitet skal være loaded Admin skal have en adminprofil og være logget ind Produkt oprettelses delen af databasen skal være funktionel Basic Course: 1. Use case begynder ved at admin logger ind på sin adminprofil og navigerer til den sidde hvor admin har sine adminhandlinger listet, heriblandt produkt oprettelse. 2. Admin åbner produktoprettelsen under adminhandlinger og udfylder den givne formular der angiver alle det nye produkts oplysninger. 3. Når formularen er udfyldt, kan admin sende & gemme det nye produkt i databasen ved at klikke på en knap under selve formularen. 4. Admin bliver nu enten viderstillet til en side hvor han/hun bliver informeret om at produktoprettelsen er succesfuld, eller vist et tekststykke under formularen hvor at han/hun bliver informeret om at oprettelsen var en success. 5. Det nye produkt er nu sendt og gemt i databasen. Frequency: Denne use case er estimeret til at foregå 10 gange månedligt, ved at tage virksomhedens volume til eftertanke samt dens potentielle målgruppe. 15

Alternate Course A: Admin opretter produktet direkte inde i databasen fremfor på hjemmesiden. Condition: Adminhandlinger produktoprettelse giver fejl eller er ikke helt funktionel på hjemmesiden endnu. 1. Admin åbner MySQL Workbench eller phpmyadmin i dette tilfælde, phpmyadmin. 2. Admin navigerer til det korrekte table alt efter hvilket slags produkt det specifikt er der skal tilføjes, og går ind i struktur i menuen, her kan han/hun indsætte en ny kolonne i table. 3. Herefter indtaster admin diverse oplysninger om det nye produkt han/hun har navigeret til, når alle felter er udfyldt korrekt klikker admin på gem. Post conditions: Admin har fået oprettet et nyt produkt i databasen Actors: Admin Notes: Grunden til at der ikke er nogle alternate courses under admin produktoprettelse der drejer sig om at admin har indtastet forkerte oplysninger er fordi at formularen simpelthen ikke vil gå igennem uden at alle felter er i korrekt format, det vil fx. ikke være muligt for admin at give produktet et ID på formularen da dette er auto generet i databasen for at undgå fejl. SQL statement: Bilag 3 - SQL statement UC3 / opret produkt 4. Nu er det nye produkt oprettet og gemt i databasen. 16

Navigations diagram / Site map Struktur over det nye trorodvin.dk, som vores løsning. Selve websitet var ikke et krav til opgaven. Vi har dog udviklet et simpelt site, som har log ind og kurv som fungerer. Bliver beskrevet kort senere i rapporten. 17

CRUD matrix C = Create R = Read U = Update D = Delete 18

Prototype hjemmeside Vi har lavet en prototype af vores webshop, som har basale funktioner som hænger sammen med databasen. Dens basale funktioner virker. Der er dog sider hvor der ingen info findes da det ikke har betydning for vores webshop produkt. Admin login Admin loginpage: http://designduck.dk/cph/s3p1-m/admin_login Email: admin@trorodvin.dk Password: 1234567 I admin menuen findes en lang række funktioner der knytter sig til databasen. Her kan du bl.a. tilføje nye produkter til hjemmesiden eller tilføje et nyt land. Vi har lavet et aktivitets diagram for at fremvise de funktioner der findes ved at bevæge sig rundt på sitet Se næste side for aktivitets diagram (side 20) Hjemmesidens filer PHP Da hjemmesiden i denne omgang ikke er en del af den originale opgave. Vil vi undlade at forklare php filer og tilhørende kode til dette for denne gang, men glæder os til næste projekt hvor dette bliver en mulighed. Alle PHP filer til hjemmesiden ligger i zip folderen i en underfolder Trorodvin.dk - Vi har dog fjernet infoen fra connect.php, da den indeholder koden til designduck.dk personlige database og er irevelant for resten af koden. Mock-up af frontside design ved endelig version 19

Aktivitets diagram Tilbage til Prototype hjemmeside 20

Bilag 1 - SQL statement UC1 / opret bruger /* ============================ = UseCase 1 - Opret bruger = =============================*/ -- Først indtaster vi kunden i vores database i tabellen costumers. -- Insert into costumers(kunder) values (A_I, Kundenavn, Adresse, Postnummer, email, telefonnr, password, branche/sector ) use eamunter_s3p1; insert into costumers values (DEFAULT, Kunde navn, Nørgaardsvej 30, 2800, kunde@navn.dk, 36154500, 1234567, 9 ); -- Herefter tjekker vi om brugeren er blevet oprettet. Ved at finde kunden ved hans/hendes navn. SELECT * FROM costumers WHERE cname = Kunde navn -- Kunden er blevet oprettet og usecase 1 er fuldendt. Tilbage til UseCase 1 21

Bilag 2 - SQL statement UC2 / opret ordre /* ============================ = UseCase 2 - Opret ordre = =============================*/ /* Jens Jensen ønsker at købe fire Norton Malbec Reserve, rød vin. Derfor skal vi bruge hans brugerid (cno). Det finder vi ved at lave et select statement */ use eamunter_s3p1; SELECT costumers.cno FROM costumers WHERE cname = Jens Jensen ; /* Jens Jensens id er 11. Vi kan nu begynde på at oprette en ordre for ham, men først skal vi bruge id et på produktet. Det kan findes ved et lignende select statement. */ SELECT products.pno FROM products WHERE pname = Norton Malbec Reserve ; /* Her finder vi ud af at Norton Malbec Reserve har id nummer 2 i databasen. Nu kan vi fuldføre ordren. Ved at oprette en ordre først for denne dato 19-09-2014. */ INSERT INTO orders(ono,cno,ordate) VALUES (DEFAULT, 11, 2014-09-19 ); -- Vi putter nu en ordre detajle ind. Med ordrenummer, produktnummer og antal. INSERT INTO odetails(ono,pno,qty) VALUES ( 12, 2, 4 ); -- Vi kan nu tjekke om ordren er kommet korrekt ind SELECT costumers.cname AS Kundenavn, orders.ono AS Ordrenummer, products.pname AS Produktnavn, odetails.qty AS Antal, orders.ordate AS Ordre modtaget FROM costumers INNER JOIN orders ON costumers.cno = orders.cno INNER JOIN odetails ON odetails.ono = orders.ono INNER JOIN products ON products.pno = odetails.pno WHERE costumers.cname = Jens Jensen ; /* Her får vi printet infoen om ordren Kundenavn Jens Jensen Ordrenummer 1 Produktnavn Norton Malbec Reserve Antal 4 Ordre modtaget 2014-09-19 Kunden er ordre er modtaget og registreret og UseCase 2 er fuldendt. */ -- Herefter tjekker vi for ordrenummeret SELECT orders.ono FROM orders WHERE cno = 11; -- Vores ordrenummer er 1. Tilbage til UseCase 2 22

Bilag 3 - SQL statement UC3 / opret produkt /* ============================ = UseCase 3 - Opret produkt = =============================*/ /* Først indtaster vi produktet i vores database i tabellen products. Lad os antage vi skal indtaste en rødvin, Marsannay fra Frankrig, Bourgogne. Vi har 50 af dem der skal tastes ind i databasen. Først skal vi finde ud af hvilket nno(landenummer) Frankrig har og rno(region nummer) som Borgougne har, og ikke mindst hvilken tno(type nummer) rødvin har. Det kan findes ved tre simple select statements. */ use eamunter_s3p1; SELECT nno FROM country WHERE nname = Frankrig ; -- Frankrig har nno = 4 /* Herefter kan vi indtaste følgende i products tabellen Insert into products(produkter) values (A_I, Vin navn, Pris, Lagernummer, Nuværende antal, Minimum antal, Land, Region, Type, Minimum temperatur, Maximum temperatur, Produkt beskrivelse ) */ insert into products values (DEFAULT, Marsannay, 199, 10150, 42, 2, 4, 18, 1, 16, 18, Ejendommen har siden 2003 været drevet af familien Lignier. Er beliggende nord for landsbyen Marsannay. Vinmarker er placeret i en dal, hvilket giver meget vind og er godt for dyrkning af vinstokke. Jorden er stenet og drænet. Druerne er 100% Pinot Noir. ); -- Herefter tjekker vi om produktet er blevet oprettet. Ved at finde produktet ved dets navn. SELECT * FROM products WHERE pname = Marsannay ; -- Produktet er blevet oprettet og UseCase 3 er fuldendt. SELECT rno FROM region WHERE rname = Bourgogne ; -- Bourgogne har rno = 18 SELECT tno FROM ptype WHERE type = Rodvin ; -- Rødvin har tno = 1 Tilbage til UseCase 3 23