Projekt 1 Database Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1 CREATE TABLE IF NOT EXISTS `3sempro1`.`cu `customer_id` INT(5) NOT NULL AUTO_INCR `name` VARCHAR(45) NULL DEFAULT NULL, `address` VARCHAR(45) NULL DEFAULT NULL `email` VARCHAR(45) NULL DEFAULT NULL, `zipcodes_zip` INT(4) NOT NULL, `sector_sector_id` VARCHAR(5) NOT NULL, PRIMARY KEY (`customer_id`, `zipcodes_z INDEX `fk_customers_zipcodes_idx` (`zip INDEX `fk_customers_sector1_idx` (`sect CONSTRAINT `fk_customers_zipcodes` FOREIGN KEY (`zipcodes_zip`) REFERENCES `3sempro1`.`zipcodes` (`zi ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_customers_sector1` FOREIGN KEY (`sector_sector_id`) REFERENCES `3sempro1`.`sector` (`sect ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;
Faktaark Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e Gruppe 1 Caroline Vikke Lundholm Madsen cph-cm21@cphbusiness.dk Indholdsfortegnelse Faktaark 02 Indholdsfortegnelse 02 Indledning 03 ER model 03 Tabel over attributter 03 Projektplan 04 Use Case Model (UCM) 05 Use Case Story 06 Navigationsdiagram 06 CRUD matrix 07 Andreas Brix cph-ab8@cphbusiness.dk Lars Nordenbæk cph-ln12@cphbusiness.dk Martin Schäfer Svendsen cph-ms18@cphbusiness.dk
Indledning Vi har i dette projekt opbygget en database ud fra en relationsmodel på 3. normalform. Databasen er opbygget ud fra en fiktiv webshop, hvor vi forhandler Apple produkter. Tabel over attributter Entity Attributes Value Notes Data type customers customer_id INT(5) Primary Key N customers name V(45) A ER model Vores database består af syv entiteter, som indeholder en række attributter. customers address V(45) A customers zipcodes_zip INT(4) Foreign Key N customers sector_sector_id V(5) Foreign Key N Figur 1.1 - Customers I denne tabel findes data på kunden. Vi har dog valgt at shoppen skal fungere uden login. Det vil sige, at når man checker ud, skal man ikke oprette sig som kunde. Tabellen indeholder derfor kun leveringsadressen, og ikke en unik kunde. Set i baglyset, ville vi kalde denne tabel for deliveryinfo. Der er to foreign keys, som peger på henholdsvis sector (branche) samt zipcodes (data over postnumre og byer). Entity Attributes Value Notes Data type products product_id V(8) Primary Key N products name V(45) A products price D(7,2) Decimal N Figur 1.0 products place_in_stock INT(10) N
Entity Attributes Value Notes Data type products number_in_s... INT(10) N products min_number_... INT(10) N Projektplan Se vedlagte Gantt-kort og diagram, bilag 1. products description V(999) A Figur 1.2 - Products I tabel 1.2 (products) finder vi data på det enkelte produkt. Primary Key udgøres af et unikt product ID. Entity Attributes Value Notes Data type orders order_id INT(8) Primary Key N orders customers_cu... INT(5) N orders order_status_o... V(3) A Figur 1.3 - Orders Tabellen orders indeholder information omkring de ordrer. En ordre har et order_id som primary key. Herudover er der en relation til customers tabellen, så vi kan se hvilken leveringsadresse ordren skal sendes til. Endelig findes der en order_status som kan ændres til forskellige statuskoder, der angiver hvor langt den enkelte ordre er nået. Denne status kan ændres af admin (se Use Case Model).
Use Case Model (UCM) Se ordrer Ændre ordrestatus Opret produkt Gennemfør Annullér ordre Administrator Redigér produkt Slet produkt Guest Vis produkter Se ordrestatus Tilføj produkt(er) Indtast leveringsadr Gennemfør køb Redigér kurv Slet kurv
Use Case Story Vi har udover de to Use Case Models beskrevet en enkelt Use Case Story (UC1) for funktionen Create new order. Se bilag 2. Navigationsdiagram Diagrammet viser den overordnede struktur på vores webløsning. Websitet er ikke udfærdiget som en del af dette projekt.
CRUD matrix ENTITY customers zipcodes sector orders order_status products products_to_pur chase Vis produkter R Tilføj produkt til kurv R C Redigér antal varer i kurv U Indtast leveringsadresse C R R Slet vare fra kurv D Gennemfør køb C C U Admin: opret ny branche C Admin: redigér ordre U U Admin: tilføj et nyt produkt Admin: redigér et produkt Admin: slet et produkt C U D