DATABASE Projekt: Projekt 1, 3. semester Website: http://kostecki.dk/cph/projektdb/ Dato: 08/09/14-21/09/14 Skole: Copenhagen Business Academy Klasse: Multimediedesigner - Mulb Gruppe: MULB1 Undervisere: Ivan Rosenvinge Frederiksen og Tue Becher CREATE TABLE products ( productid INT PRIMARY KEY AUTO_INCREMENT, productname VARCHAR(45), productprice NUMERIC, productqoh INT, imageid_fk INT, designerid_fk INT, manufacturerid_fk INT, typeid_fk INT, FOREIGN KEY (imageid_fk) REFERENCES productimages(imageid), FOREIGN KEY (designerid_fk) REFERENCES designers(designerid), FOREIGN KEY (manufacturerid_fk) REFERENCES manufacturers(manufacturerid), FOREIGN KEY (typeid_fk) REFERENCES types(typeid)); Jacob Kostecki cph-jk170@cphbusiness.dk [Link til portfolio] Jayne Alice Jensen cph-jj208@cphbusiness.dk [Link til portfolio] Miia Ebbesen cph-me100@cphbusiness.dk [Link til portfolio] Ved at underskrive dette dokument, bekræfter vi hermed at al materiale er udarbejdet af os selv. Vi har ikke kopieret en andens arbejde eller anvendt materiale uden at give en reference til kilden. Vi har ikke snydt på nogle måder. 1
INDHOLDSFORTEGNELSE INDLEDNING 3 PROJEKT PLAN - PBS 4 PROJEKT PLAN - WBS 5 PROJEKT PLAN - GANTT 6 ER-DIAGRAM 7 ATTRIBUTTABEL 8-9 USE CASE MODEL 10 USE CASE NR. 1 11 USE CASE NR. 2 12-13 USE CASE NR. 3 14-15 NAVIGATIONSDIAGRAM 16 CRUD MATRIX 17 DATABASE 18-20 REFERENCER 21 BILAG 22 2
INDLEDNING I dette projekt har vi fået den opgave at udvælge et website og udvikle en e-handel løsning. Heri skal vi udvikle en funktionel database, der kan støtte købsprocessen fra valg af produkt til at afgive en order. Vi har valgt Olsson Møbler, der sælger designermøbler. De har to fysiske butikker og et online katalog, men ingen online butik. Vi har valgt ikke at tage en betalingløsning (payment_method) med i vores overvejelse omkring udvikling af databasesystemet, idet man i virkeligheden vil anvende en ekstern løsning fra eksempelvis Nets. 3
PROJEKT PLAN - PBS Før vi gik i gang med at udvikle databasesystemet, lavede vi en projektplan. I de næste tre sider ses vores projektplan med en PBS, WBS og til sidst et Gantt-skema. 4
PROJEKT PLAN - WBS 5
PROJEKT PLAN - GANTT 6
ER-DIAGRAM Herunder er vores ER-diagram på 3. normalform. 7
ATTRIBUTTABEL 1/2 Entity Attributes Value Notes Datatype N/AN customers customerid 1 - X Unique no. INT N customername a - Å Max. 45 char VARCHAR(45) AN customerstreet All char. Max. 65 char VARCHAR(65) AN zip_fk 1000-9999 Max. 4 char INT N customerphone Number Max. 8 char INT N customeremail All char. Max. 65 char VARCHAR(65) AN zipcodes zip 1000-9999 Max. 4 char INT N city a - Å Max. 45 char VARCHAR(45) AN products productid 1 - X Unique no. INT N productname All char. Max. 45 char VARCHAR(45) AN imageid designerid_fk 1 - X Unique no. INT N typeid_fk 1 - X Unique no. INT N manufacturerid_fk 1 - X Unique no. INT N productprice Currency Number NUMERIC(15,2) N 8
ATTRIBUTTABEL 2/2 productqoh 0-50 Number INT N orders orderid 1 - X Unique no. INT N customerid_fk 1 - X Unique no. INT N orderreceived Date Date Date odetails orderid_fk 1 - X Unique no. INT N productid_fk 1 - X Unique no. INT N orderdetailqty 1-50 Number INT N designers designerid 1 - X Unique no. INT N designername a - Å Max. 45 char VARCHAR(45) AN types typeid 1 - X Unique no. INT N typename a - Å Max. 45 char VARCHAR(45) AN manufacturers manufacturerid 1 - X Unique no. INT N manufacturername a - Å Max. 45 char VARCHAR(45) AN productimages imageid 1 - X Unique no. INT N imageurl All char. Max. 45 char VARCHAR(45) AN 9
USE CASE MODEL v VIEW ITEMS ADD TO CART REGISTERED CUSTOMER PLACE ORDER REGISTER AS CUSTOMER CREATE NEW PRODUCT CREATE NEW TYPE ADMIN CREATE NEW DESIGNER NEW CUSTOMER CREATE NEW MANUFACTURE 10
USE CASE NR. 1 1 ID: UC01 2 Titel: Som administrator ønsker vi at tilføje et produkt. 3 Kort beskrivelse: Administrator tilføjer et nyt produkt ved hjælp af en adminside. 4 Forretningsmål: Administrator tilføjer et nyt produkt som bliver tilgængelig i webshop. 5 Primær aktør: 1. Admin. 6 Før-tilstand: - Ingen særlige krav. 7 Antagelser: - Man skal have admin rettigheder. 8 Hyppighed: 15 gange om året. 9 Almindelig handlingsforløb: 1. Admin går ind på adminsiden. 2. Admin udfylder formularen. 3. Admin indsender formularen. 4. Formularen valideres. 5. Informations sendes til databasen. 6. Admin får en bekræftelse af at produktet er oprettet. 7. Use case slutter. 10 Alternativ handlingsforløb: 10.1 Manglende felter Hvis admin i trin 2 ikke udfylder formularen så: 1. Admin får denne fejlmeddelse: Udfyld alle felter. 10.2 Manglende karakter i felter Hvis admin udfylder formularen med manglende karakter så: 1. Admin får denne fejlmeddelse ved feltet Produktnavn : Et produktnavn skal indtastes. 2. Admin får denne fejlmeddelse ved feltet Produktpris : Et produkt skal have en pris.. 3. Admin får denne fejlmeddelse ved feltet Antal på lager : Produktet skal være på lager 4. Use case slutter. 11 Efter-tilstand: 1. Det nye produkt tilføjes succesfuldt. 11
USE CASE NR. 2 1 ID: UC02 2 Titel: Som bruger ønsker vi at oprette som ny kunde. 3 Kort beskrivelse: Bruger besøger websitet og opretter sig som ny kunde. 4 Forretningsmål: Brugeren kan selvstændigt oprette sig som kunde i systemet. 5 Primær aktør: 1. Brugeren. 6 Før-tilstand: - Ingen særlige krav. 7 Antagelser: 1. Formularen er tilknyttet en database. 2. Brugeren skal have en email adresse og telefonnummer. 8 Hyppighed: 38 gange om ugen. 9 Almindelig handlingsforløb: 1. Brugeren går ind på oprettelsessiden. 2. Brugeren udfylder formularen. 3. Brugeren insender formularen. 4. Formularen valideres. 5. Information sendes videre til databasen. 6. Brugerens information oprettes i databasen. 7. Brugeren får en bekræftelse, at han/hun er oprettet som ny kunde. 8. Use case slutter. (Fortsættes på næste side...) 12
USE CASE NR. 2 10 Alternativ handlingsforløb: 10.1 Manglende felter Hvis brugeren i trin 2 ikke udfylder formularen så: 1. Brugeren får denne fejlmeddelse: Udfyld alle felter. 10.2 Manglende karakter i felter Hvis brugeren udfylder formularen med manglende karakter så: 1. Brugeren får denne fejlmeddelse ved feltet Navn : Navnet må ikke indeholde tal. 2. Brugeren får denne fejlmeddelse ved feltet Adresse : Adressen skal indeholde både vejnavn og husnummer. 3. Brugeren får denne fejlmeddelse ved feltet Postnummer : Postnummeret eksisterer ikke og/eller Postnummeret kan ikke indeholde bogstaver. 4. Brugeren får denne fejlmeddelse ved feltet Telefonnummer : Telefonnummeret kan kun indeholde tal og/eller Telefonnummeret kan kun være 8 karakter langt. 5. Use case slutter. 11 Efter-tilstand: 1. Brugeren bliver oprettet som en ny kunde. 2. Brugeren får bekræftet oprettelsen. 13
USE CASE NR. 3 1 ID: UC03 2 Titel: Som kunde ønsker vi at afgive ordrer. 3 Kort beskrivelse: Kunde besøger websitet og køber en eller flere varer. 4 Forretningsmål: Kunden kan selvstændigt vælge produkter og indsende en ordre. 5 Primær aktør: 1. Kunden. 6 Før-tilstand: - Ingen særlige krav. 7 Antagelser: 1. Brugeren skal være oprettet som kunde. 2. Brugeren er logget på. 3. Webshoppen er tilknyttet en database. 8 Hyppighed: Omtrent 78 gange om ugen. 9 Almindelig handlingsforløb: 1. Kunden går ind på webshoppen. 2. Kunden ser produkter. 3. Kunden vælger et produkt. 4. Kunden vælger antal af produktet. 5. Kunden tilføjer produktet til indkøbskurven. 6. Kunden går til indkøbskurven. 7. Kunden ønsker evt. at gå tilbage og se på flere produkter. Tilbage til punkt 2. Dette punkt kan gentages flere gange. 8. Kunden trykker på bestil. 9. Købet registreres i databasen. 10. Antal af det købte produkt(er) tilbage på lager nedskrives i databasen. 11. Kunden får en bekræftelse at han/hun har købt produktet ved et pop-up vindue. 12. Use case slut. (Fortsættes på næste side...) 14
USE CASE NR. 3 10 Alternativ handlingsforløb: 10.1 Lagerstatus Hvis kunden i trin 5 prøver at tilføje flere produkter, end der er på lager så: 1. Kunden får denne fejlmeddelse: Ikke nok på lager. Der er kun x antal på lager.. 10.2 Log ind Hvis kunden i trin 8 prøver at bestille uden at være logget på så: 1. Kunden får denne meddelse: Jeg er allerede bruger. Log ind for at gennemfør bestillingen/ny bruger. Registrer dig som bruger for at gennemføre bestillingen. 11 Efter-tilstand: 1. Kundens ordrer bliver gennemført. 2. Kunden får bekræftet ordren. 15
NAVIGATIONSDIAGRAM 16
CRUD MATRIX ENTITY Customer Orders Odetails Products Types Designers Manufacturers PROCESS View items R R R R Add to cart R Place order R C C R/U R R R Register C New product C R R R New type C New designer C New manufacturer C 17
DATABASE Efter at have lavet de forskellige modeller og tabeller; ER-model, attributtabel, CRUD og Use Cases begyndte vi at udforme databasen i SQL. Her startede vi med at oprette tabellerne: zipcodes, customers, orders, types, designers, manufacturers, productimages, products og odetails. Vi testede vores databases funktionalitet med SELECT-statements for at sikre at vi havde alle de korrekte data. Til sidst satte vi data ind i systemet for at bevise, at man kan tilføje nye kunder, produkter, typer, designerer og så videre. Derefter hentede vi en excel fil der indholdte postnumre fra Post Danmarks website. Postnumrene skulle vi bruge til vores zip-tabel. Herefter hentede vi produktdata fra Olsson Møblers website som vi behandlede og satte ind i et excel ark. Efter testene viste det sig at vores database levede op til opgavens krav. Ved at bruge funktionen CONCATENATE i excel sammenkædede vi de forskellige informationer til SQL-sætninger. Disse SQLsætninger tilførte vi ind i vores SQL-fil. 18
DATABASE Nedenunder ses handlingsforløbet. 19
DATABASE Nedenunder ses oprettelse af et nyt produkt. 20
REFERENCER Nr. Titel Forfatter Dato Sidetal/URL 1 Add database symbol free graphic ressources 16/09/14 (hentet) http://www.flaticon.com/freeicon/add-database-symbol_175 2 User male outline SimpleIcon 17/09/14 (hentet) http://www.flaticon.com/freeicon/user-male-outline_33607 3 Importing data from Excel using INSERT statements Vishal 29/03/12 http://sqlandme. com/2012/03/29/importingdata-from-excel-using-insertstatements/ 4 Postnummer data Post Danmark 10/09/14 (hentet) http://www.postdanmark.dk/ da/privat/kundeservice/postnummerkort/sider/home.aspx 21
BILAG Nr. Titel Type 1 Bilag A SQL fil 2 Bilag B Excel dokument 22