-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathViewsQueries.sql
More file actions
119 lines (112 loc) · 2.28 KB
/
ViewsQueries.sql
File metadata and controls
119 lines (112 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
-- View 1: UserPhoneDetails (Encrypted)
CREATE VIEW UserPhoneDetails AS
SELECT
u.id AS UserID,
u.username,
u.email,
u.fname,
u.lname,
p.phone_number
FROM
E_User u
LEFT JOIN
phone_numbers p ON u.id = p.user_id;
GO
-- View 2: ProductDetails (Encrypted)
CREATE VIEW ProductDetails AS
SELECT
p.id AS ProductID,
p.name AS ProductName,
p.description AS ProductDescription,
p.price,
c.name AS CategoryName
FROM
Product p
LEFT JOIN
Category c ON p.category_id = c.id;
GO
-- View 3: OrderDetails (Encrypted)
CREATE VIEW OrderDetails AS
SELECT
o.id AS OrderID,
o.o_date AS OrderDate,
u.username AS OrderedBy,
o.payment_status,
p.amount AS PaymentAmount,
p.method AS PaymentMethod
FROM
Total_Order o
LEFT JOIN
E_User u ON o.user_id = u.id
LEFT JOIN
payment p ON o.id = p.order_id;
GO
-- View 4: CartContents (Encrypted)
CREATE VIEW CartContents AS
SELECT
ci.id AS CartItemID,
c.id AS CartID,
u.username AS CartOwner,
p.name AS ProductName,
ci.quantity,
ci.total_price
FROM
cart_items ci
INNER JOIN
Cart c ON ci.cart_id = c.id
INNER JOIN
E_User u ON c.user_id = u.id
INNER JOIN
Product p ON ci.product_id = p.id;
GO
-- View 5: OrderItemsDetails (Encrypted)
CREATE VIEW OrderItemsDetails AS
SELECT
oi.order_id AS OrderID,
p.name AS ProductName,
oi.quantity,
oi.total_price
FROM
order_items oi
INNER JOIN
Product p ON oi.product_id = p.id;
GO
-- View 6: AllUsers (Encrypted)
CREATE VIEW AllUsers AS
SELECT
u.id AS UserID,
u.username,
u.email,
u.fname,
u.lname,
u.is_admin,
p.phone_number
FROM
E_User u
LEFT JOIN
phone_numbers p ON u.id = p.user_id;
GO
-- View 7: AllOrders (Encrypted)
CREATE VIEW AllOrders AS
SELECT
o.id AS OrderID,
o.o_date AS OrderDate,
u.username AS OrderedBy,
o.payment_status,
p.amount AS PaymentAmount,
p.method AS PaymentMethod
FROM
Total_Order o
LEFT JOIN
E_User u ON o.user_id = u.id
LEFT JOIN
payment p ON o.id = p.order_id;
GO
-- Testing the Views (Optional)
SELECT * FROM UserPhoneDetails;
SELECT * FROM ProductDetails;
SELECT * FROM OrderDetails;
SELECT * FROM CartContents;
SELECT * FROM OrderItemsDetails;
SELECT * FROM AllUsers;
SELECT * FROM AllOrders;