Download presentation
Presentation is loading. Please wait.
Published byNorman Cross Modified over 9 years ago
1
IBuySPY Shopping Store
2
Data Model for IBuySPY Shopping Store
3
Sign In
4
CustomerLogin CREATE Procedure CustomerLogin ( @Email nvarchar(50), @Password nvarchar(50), @CustomerID int OUTPUT ) AS SELECT @CustomerID = CustomerID FROM Customers WHERE EmailAddress = @Email AND Password = @Password IF @@Rowcount < 1 SELECT @CustomerID = 0 GO
5
CustomerLogin CREATE FUNCTION CustomerLogin ( eml Customer.emailaddress%TYPE, pwd Customer.password%TYPE ) RETURN number IS CID Customer.CustomerID%TYPE BEGIN SELECT CustomerID INTO CID FROM Customers WHERE EmailAddress = eml AND Password = pwd; RETURN CID; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN 0; END; /
6
Register
7
CustomerAdd CREATE Procedure CustomerAdd @FullName nvarchar(50), @Email nvarchar(50), @Password nvarchar(50), @CustomerID int OUTPUT AS INSERT INTO Customers (FullName,EMailAddress,Password) VALUES (@FullName,@Email,@Password) SELECT @CustomerID = @@Identity GO
8
CustomerAdd CREATE FUNCTION CustomerAdd (fname Customer.FullName%TYPE, eml Customer.Email%TYPE, pwd Customer.Password%TYPE) RETURN number IS CID Customer.CustomerID%TYPE BEGIN CID := cus_seq.NEXTVAL; INSERT INTO Customers (CustomerID,FullName,EMailAddress,Password) VALUES (CID, fname, eml, pwd); RETURN CID; END; /
9
Customer Also Bought
10
CustomerAlsoBought(1/2) CREATE Procedure CustomerAlsoBought @ProductID int As /* 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
11
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
12
ProductSearch ALTER Procedure ProductSearch @Search nvarchar(255) AS SELECT ProductID,ModelName,ModelNumber,UnitCost,ProductImage FROM Products WHERE ModelNumber LIKE '%' + @Search + '%' OR ModelName LIKE '%' + @Search + '%' OR Description LIKE '%' + @Search + '%' GO
13
Most Popular Items
14
ProductsMostPopular CREATE Procedure ProductsMostPopular AS SELECT TOP 5 OrderDetails.ProductID, SUM(OrderDetails.Quantity) as TotalNum, Products.ModelName FROM OrderDetails INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID GROUP BY OrderDetails.ProductID, Products.ModelName ORDER BY TotalNum DESC GO
15
Shopping Cart
16
ShoppingCartAddItem (1/2) CREATE Procedure ShoppingCartAddItem @CartID nvarchar(50), @ProductID int, @Quantity int As DECLARE @CountItems int SELECT @CountItems = Count(ProductID) FROM ShoppingCart WHERE ProductID = @ProductID AND CartID = @CartID
17
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
18
ShoppingCartRemoveAbandoned CREATE Procedure ShoppingCartRemoveAbandoned AS DELETE FROM ShoppingCart WHERE DATEDIFF(dd, DateCreated, GetDate()) > 1 GO
19
OrdersAdd(1/3) CREATE Procedure OrdersAdd @CustomerID int, @CartID nvarchar(50), @OrderDate datetime, @ShipDate datetime, @OrderID int OUTPUT AS BEGIN TRAN AddOrder /* Create the Order header */ INSERT INTO Orders (CustomerID, OrderDate, ShipDate) VALUES (@CustomerID, @OrderDate, @ShipDate) SELECT @OrderID = @@Identity
20
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
21
OrdersAdd(3/3) /* Removal of items from user's shopping cart will happen on the business layer*/ EXEC ShoppingCartEmpty @CartId COMMIT TRAN AddOrder GO
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.