eBusiness Database Design
—Based on C2C Model
Team 6: Meg Wang, Yao Zhou, Kyle
Estlick
Outline
• Overview
• ERD Design
• Implementation (DDL)
• Views and Reports
Overview - Purpose
Meet users’ needs of selling and buying products from the website
Facilitate business analysis request from stakeholders
Overview - Business Rules
• Each signup user has one user account
• Each user account has one profile
• Each user account can have multiple payment method
• Each user can have multiple stores
• Each store can sell multiple products
• Each user can have multiple orders
• Each order can contain multiple products
• Each user can have multiple return orders
• Each return order can contain multiple products
• Each user can have multiple coupons
• Each coupon can be owned by multiple users
• Each coupon can be applied to only one product
ERD DESIGN
Table Name Column Name Data Type
Users
UserID INT
UserName Varchar(25)
Password Varchar(25)
Table Name Column Name Data Type
SignUp
SignUpID INT
UserID Varchar(25)
SignUpDate Datetime
ReferralType Varchar(25)
Login
LoginID INT
UserID INT
LoginDate Datetime
LoginSucess Varchar(1)
LoginStartTime Datetime
LoginEndTime Datetime
Profiles
ProfileID INT
UserID INT
FirstName Varchar(25)
LastName Varchar(25)
Gender char(1)
Birthdate Datetime
Email Varchar(40)
Address Varchar(40)
State Varchar(2)
ERD DESIGN
Table Name Column Name Data Type
Stores
StoreID INT
UserID INT
StoreDescription Varchar(400)
StoreStartDate Datetime
StoreCredit Decimal
Table Name Column Name Data Type
Products
ProductID INT
StoreID INT
Category Varchar(10)
Name Varchar(20)
Quantity INT
Price Money
Desc Varchar(40)
Payment
PaymentID INT
UserID INT
CardName INT
CardNumber Varchar(25)
CardExpire Varchar(20)
BillingState Varchar(2)
BillingCity Varchar(25)
BillingAdd Varchar(40)
BillingZip Varchar(10)
ERD DESIGN
Table Name Column Name Data Type Table Name Column Name Data Type
Orders
OrderID INT
UserID INT
PaymentID INT
OrderStatus Varchar(10)
OrderDate Datetime
OrderDetail
OrderDetailID INT
OrderID INT
ProductID INT
Quantity INT
Return
ReturnID INT
UserID INT
PaymentID INT
ReturnStatus Varchar(10)
ReturnDate Datetime
ReturnDetail
ReturnDetailID INT
ReturnID INT
ProductID INT
ERD DESIGN
Table Name Column Name Data Type Table Name Column Name Data Type
Coupons
CouponID INT
ProductID INT
CouponName Varchar(25)
CouponDesc Varchar(40)
StartDate Datetime
ExpireDate Datetime
BuyerOwnedCoupo
n
BuyerOwnedCouponID INT
UserID INT
CouponID INT
ERD DESIGN
Implementation (DDL)
CREATE DATABASE GROUP_6_FINAL;
USE GROUP_6_FINAL;
--Create table Store
CREATE TABLE dbo.Stores
(
StoreID INT IDENTITY NOT NULL PRIMARY KEY,
UserId INT NOT NULL
REFERENCES dbo.Users(UserID),
StoreDescription VARCHAR(400),
StoreStartDate DATETIME NOT NULL,
StoreCredit DECIMAL NOT NULL
)
/*
Add the constrain that StoreStartDate is not after the date which data is input.
*/
ALTER TABLE Stores
ADD CONSTRAINT CHECKFORDATE CHECK(StoreStartDate <= getdate());
Example:
Views and Reports
PURPOSE: CREATE VIEW TO GET USER INFORMATION INCLUDING
THE NUMBER OF TIMES EACH USER HAS LOGGED IN AND THE
NUMBER OF STORES THEY MANAGE
CREATE VIEW UserList
AS
SELECT
a.UserID,
a.FirstName,
a.LastName,
a.Email,
b.UserName,
(SELECT COUNT(c.UserID)
FROM Stores c
WHERE c.UserID = a.UserID) AS [StoreCount],
(SELECT d.SignupDate
FROM SignUp d
WHERE d.UserID = a.UserID) AS [SignupDate],
(SELECT COUNT(e.UserID)
FROM Logins e
WHERE e.UserID = a.UserID) AS [LoginCount],
(SELECT MAX(LoginDate)
FROM Logins f
WHERE f.UserID = a.UserID) AS [MostRecentLogin]
FROM Profiles a
JOIN Users b
ON a.UserID = b.UserID;
Views and Reports
Report 1: User information including how many times each user has logged in and how many
stores they manage
Views and Reports
PURPOSE:-- CREATE VIEW TO GET STORE INFORMATION INCLUDING
HOW MANY PRODUCTS ARE OFFERED BY THE STORE AND WHAT THE
PRIMARY PRODUCT CATEGORY IS
CREATE VIEW StoreList
AS
SELECT
a.StoreID,
a.StoreDescription,
a.StoreCredit,
(SELECT b.Email
FROM Profiles b
WHERE a.UserID = b.UserID) AS [StoreOwnerEmail],
(SELECT COUNT(*)
FROM Products c
WHERE a.StoreID = c.StoreID) AS [ProductsCount],
(SELECT TOP 1 Category
FROM Products d
WHERE a.StoreID = d.StoreID
GROUP BY Category
ORDER BY COUNT(*) DESC) AS [PrimaryProductCategory]
FROM Stores a;
Views and Reports
Report 2: Store Information including how many products are offered by the store and what the
primary product category is
Thanks for your attention!

eBusiness Website Database Design

  • 1.
    eBusiness Database Design —Basedon C2C Model Team 6: Meg Wang, Yao Zhou, Kyle Estlick
  • 2.
    Outline • Overview • ERDDesign • Implementation (DDL) • Views and Reports
  • 3.
    Overview - Purpose Meetusers’ needs of selling and buying products from the website Facilitate business analysis request from stakeholders
  • 4.
    Overview - BusinessRules • Each signup user has one user account • Each user account has one profile • Each user account can have multiple payment method • Each user can have multiple stores • Each store can sell multiple products • Each user can have multiple orders • Each order can contain multiple products • Each user can have multiple return orders • Each return order can contain multiple products • Each user can have multiple coupons • Each coupon can be owned by multiple users • Each coupon can be applied to only one product
  • 5.
    ERD DESIGN Table NameColumn Name Data Type Users UserID INT UserName Varchar(25) Password Varchar(25) Table Name Column Name Data Type SignUp SignUpID INT UserID Varchar(25) SignUpDate Datetime ReferralType Varchar(25) Login LoginID INT UserID INT LoginDate Datetime LoginSucess Varchar(1) LoginStartTime Datetime LoginEndTime Datetime Profiles ProfileID INT UserID INT FirstName Varchar(25) LastName Varchar(25) Gender char(1) Birthdate Datetime Email Varchar(40) Address Varchar(40) State Varchar(2)
  • 6.
    ERD DESIGN Table NameColumn Name Data Type Stores StoreID INT UserID INT StoreDescription Varchar(400) StoreStartDate Datetime StoreCredit Decimal Table Name Column Name Data Type Products ProductID INT StoreID INT Category Varchar(10) Name Varchar(20) Quantity INT Price Money Desc Varchar(40) Payment PaymentID INT UserID INT CardName INT CardNumber Varchar(25) CardExpire Varchar(20) BillingState Varchar(2) BillingCity Varchar(25) BillingAdd Varchar(40) BillingZip Varchar(10)
  • 7.
    ERD DESIGN Table NameColumn Name Data Type Table Name Column Name Data Type Orders OrderID INT UserID INT PaymentID INT OrderStatus Varchar(10) OrderDate Datetime OrderDetail OrderDetailID INT OrderID INT ProductID INT Quantity INT Return ReturnID INT UserID INT PaymentID INT ReturnStatus Varchar(10) ReturnDate Datetime ReturnDetail ReturnDetailID INT ReturnID INT ProductID INT
  • 8.
    ERD DESIGN Table NameColumn Name Data Type Table Name Column Name Data Type Coupons CouponID INT ProductID INT CouponName Varchar(25) CouponDesc Varchar(40) StartDate Datetime ExpireDate Datetime BuyerOwnedCoupo n BuyerOwnedCouponID INT UserID INT CouponID INT
  • 9.
  • 10.
    Implementation (DDL) CREATE DATABASEGROUP_6_FINAL; USE GROUP_6_FINAL; --Create table Store CREATE TABLE dbo.Stores ( StoreID INT IDENTITY NOT NULL PRIMARY KEY, UserId INT NOT NULL REFERENCES dbo.Users(UserID), StoreDescription VARCHAR(400), StoreStartDate DATETIME NOT NULL, StoreCredit DECIMAL NOT NULL ) /* Add the constrain that StoreStartDate is not after the date which data is input. */ ALTER TABLE Stores ADD CONSTRAINT CHECKFORDATE CHECK(StoreStartDate <= getdate()); Example:
  • 11.
    Views and Reports PURPOSE:CREATE VIEW TO GET USER INFORMATION INCLUDING THE NUMBER OF TIMES EACH USER HAS LOGGED IN AND THE NUMBER OF STORES THEY MANAGE CREATE VIEW UserList AS SELECT a.UserID, a.FirstName, a.LastName, a.Email, b.UserName, (SELECT COUNT(c.UserID) FROM Stores c WHERE c.UserID = a.UserID) AS [StoreCount], (SELECT d.SignupDate FROM SignUp d WHERE d.UserID = a.UserID) AS [SignupDate], (SELECT COUNT(e.UserID) FROM Logins e WHERE e.UserID = a.UserID) AS [LoginCount], (SELECT MAX(LoginDate) FROM Logins f WHERE f.UserID = a.UserID) AS [MostRecentLogin] FROM Profiles a JOIN Users b ON a.UserID = b.UserID;
  • 12.
    Views and Reports Report1: User information including how many times each user has logged in and how many stores they manage
  • 13.
    Views and Reports PURPOSE:--CREATE VIEW TO GET STORE INFORMATION INCLUDING HOW MANY PRODUCTS ARE OFFERED BY THE STORE AND WHAT THE PRIMARY PRODUCT CATEGORY IS CREATE VIEW StoreList AS SELECT a.StoreID, a.StoreDescription, a.StoreCredit, (SELECT b.Email FROM Profiles b WHERE a.UserID = b.UserID) AS [StoreOwnerEmail], (SELECT COUNT(*) FROM Products c WHERE a.StoreID = c.StoreID) AS [ProductsCount], (SELECT TOP 1 Category FROM Products d WHERE a.StoreID = d.StoreID GROUP BY Category ORDER BY COUNT(*) DESC) AS [PrimaryProductCategory] FROM Stores a;
  • 14.
    Views and Reports Report2: Store Information including how many products are offered by the store and what the primary product category is
  • 15.
    Thanks for yourattention!