Top Banner
IBuySPY Shopping Store
19

IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Jan 06, 2018

Download

Documents

Norman Cross

Sign In
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

IBuySPY Shopping Store

Page 2: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Data Model for IBuySPY Shopping Store

Page 3: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Sign In

Page 4: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

CustomerLoginCREATE FUNCTION CustomerLogin( eml Customer.emailaddress%TYPE, pwd Customer.password%TYPE )RETURN number ISCID Customer.CustomerID%TYPEBEGIN

SELECT CustomerID INTO CIDFROM CustomersWHERE EmailAddress = emlAND Password = pwd;RETURN CID;

EXCEPTIONWHEN NO_DATA_FOUND THENRETURN 0;

END;/

Page 5: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Register

Page 6: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

CustomerAddCREATE FUNCTION CustomerAdd (fname Customer.FullName%TYPE, eml Customer.Email%TYPE, pwd Customer.Password%TYPE)RETURN number IS CID Customer.CustomerID%TYPEBEGIN

CID := cus_seq.NEXTVAL;INSERT INTO Customers(CustomerID,FullName,EMailAddress,Password)VALUES (CID, fname, eml, pwd);RETURN CID;

END;/

Page 7: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Customer Also Bought

Page 8: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

CustomerAlsoBought(1/2)CREATE Procedure CustomerAlsoBought @ProductID intAs

/* We want to take the top 5 products contained in the orders where someone has purchased the given

Product */SELECT TOP 5 OrderDetails.ProductID, Products.ModelName, SUM(OrderDetails.Quantity) as TotalNum

FROM OrderDetails INNER JOIN Products ON OrderDetails.ProductID =

Products.ProductID

Page 9: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

CustomerAlsoBought(2/2)WHERE OrderID IN ( /* This inner query should retrieve all orders that

have contained the productID */ SELECT DISTINCT OrderID FROM OrderDetails WHERE ProductID = @ProductID)AND OrderDetails.ProductID != @ProductID

GROUP BY OrderDetails.ProductID, Products.ModelName

ORDER BY TotalNum DESC

GO

Page 10: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

ProductSearchALTER Procedure ProductSearch @Search nvarchar(255)AS

SELECT ProductID,ModelName,ModelNumber,UnitCost,ProductImageFROM ProductsWHERE ModelNumber LIKE '%' + @Search + '%' OR ModelName LIKE '%' + @Search + '%' OR Description LIKE '%' + @Search + '%'

GO

Page 11: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Most Popular Items

Page 12: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

ProductsMostPopularCREATE Procedure ProductsMostPopularAS

SELECT TOP 5 OrderDetails.ProductID, SUM(OrderDetails.Quantity) as TotalNum, Products.ModelName FROM OrderDetails INNER JOIN Products ON OrderDetails.ProductID =

Products.ProductIDGROUP BY OrderDetails.ProductID, Products.ModelName ORDER BY TotalNum DESCGO

Page 13: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

Shopping Cart

Page 14: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

ShoppingCartAddItem (1/2)

CREATE Procedure ShoppingCartAddItem @CartID nvarchar(50), @ProductID int, @Quantity intAs

DECLARE @CountItems int

SELECT @CountItems = Count(ProductID)FROM ShoppingCartWHERE ProductID = @ProductID AND CartID = @CartID

Page 15: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

ShoppingCartAddItem (2/2)IF @CountItems > 0 /* There are items - update the

current quantity */

UPDATE ShoppingCart SET Quantity = (@Quantity + ShoppingCart.Quantity) WHERE ProductID = @ProductID AND CartID = @CartID

ELSE /* New entry for this Cart. Add a new record */ INSERT INTO ShoppingCart ( CartID, Quantity, ProductID) VALUES (@CartID, @Quantity, @ProductID)

GO

Page 16: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

ShoppingCartRemoveAbandoned

CREATE Procedure ShoppingCartRemoveAbandonedAS

DELETE FROM ShoppingCart

WHERE DATEDIFF(dd, DateCreated, GetDate()) > 1

GO

Page 17: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

OrdersAdd(1/3)CREATE Procedure OrdersAdd @CustomerID int, @CartID nvarchar(50), @OrderDate datetime, @ShipDate datetime, @OrderID int OUTPUTAS

BEGIN TRAN AddOrder

/* Create the Order header */INSERT INTO Orders(CustomerID, OrderDate, ShipDate)VALUES(@CustomerID, @OrderDate, @ShipDate)

SELECT @OrderID = @@Identity

Page 18: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

OrdersAdd(2/3)/* Copy items from given shopping cart to OrdersDetail

table for given OrderID*/INSERT INTO OrderDetails(OrderID, ProductID, Quantity, UnitCost)

SELECT @OrderID,ShoppingCart.ProductID,

Quantity, Products.UnitCost

FROM ShoppingCart INNER JOIN Products ON ShoppingCart.ProductID =

Products.ProductID WHERE CartID = @CartID

Page 19: IBuySPY Shopping Store. Data Model for IBuySPY Shopping Store.

OrdersAdd(3/3)

/* Removal of items from user's shopping cart will happen on the business layer*/

EXEC ShoppingCartEmpty @CartId

COMMIT TRAN AddOrder

GO