-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript_db.sql
More file actions
142 lines (127 loc) · 6.56 KB
/
script_db.sql
File metadata and controls
142 lines (127 loc) · 6.56 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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
-- Create Database
CREATE DATABASE SportStoreDB2;
GO
-- Use the created database
USE SportStoreDB2;
GO
-- Create Tables
CREATE TABLE Users (
UserID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Username NVARCHAR(50) NOT NULL,
Password NVARCHAR(100) NOT NULL,
Email NVARCHAR(100) NOT NULL,
FullName NVARCHAR(100) NOT NULL,
PhoneNumber NVARCHAR(20) NULL,
Role NVARCHAR(50) NOT NULL,
Address NVARCHAR(MAX) NOT NULL,
CreatedAt DATETIME NULL
);
CREATE TABLE Categories (
CategoryID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Description NVARCHAR(MAX) NULL
);
CREATE TABLE Products (
ProductID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Description NVARCHAR(MAX) NULL,
Price DECIMAL(18, 2) NOT NULL,
StockQuantity INT NOT NULL,
CategoryID INT NOT NULL,
Color VARCHAR(50) NULL,
Size VARCHAR(MAX) NULL,
Specifications NVARCHAR(MAX) NULL,
CONSTRAINT FK_Product_Category FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID) ON DELETE CASCADE
);
CREATE TABLE Blog (
BlogId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Title NVARCHAR(255) NOT NULL,
Content NVARCHAR(MAX) NOT NULL,
Author NVARCHAR(100) NOT NULL,
CreatedAt DATETIME NOT NULL,
ImageUrl NVARCHAR(255) NULL,
CategoryId INT NULL,
UserId INT NULL,
Tags NVARCHAR(255) NULL,
CONSTRAINT FK_Blog_Category FOREIGN KEY (CategoryId) REFERENCES Categories(CategoryID),
CONSTRAINT FK_Blog_User FOREIGN KEY (UserId) REFERENCES Users(UserID)
);
CREATE TABLE Cart (
CartID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
UserID INT NOT NULL,
ProductID INT NOT NULL,
Quantity INT NOT NULL,
CONSTRAINT FK_Cart_User FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE,
CONSTRAINT FK_Cart_Product FOREIGN KEY (ProductID) REFERENCES Products(ProductID) ON DELETE CASCADE
);
CREATE TABLE Comment (
CommentId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Content NVARCHAR(255) NOT NULL,
CreatedAt DATETIME NOT NULL,
ProductId INT NOT NULL,
UserId INT NOT NULL,
CONSTRAINT FK_Comment_Product FOREIGN KEY (ProductId) REFERENCES Products(ProductID),
CONSTRAINT FK_Comment_User FOREIGN KEY (UserId) REFERENCES Users(UserID)
);
CREATE TABLE Images (
ImageID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
ProductID INT NOT NULL,
ImagePath NVARCHAR(MAX) NULL,
CONSTRAINT FK_Image_Product FOREIGN KEY (ProductID) REFERENCES Products(ProductID) ON DELETE CASCADE
);
CREATE TABLE Orders (
OrderID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
UserID INT NOT NULL,
OrderDate DATETIME NOT NULL,
TotalAmount DECIMAL(18, 2) NOT NULL,
OrderStatus NVARCHAR(50) NOT NULL,
ShippingMethod NVARCHAR(255) NULL,
PaymentMethod NVARCHAR(255) NULL,
ShippingAddress NVARCHAR(1000) NULL,
CONSTRAINT FK_Order_User FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE
);
CREATE TABLE OrderDetails (
OrderDetailID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
OrderID INT NOT NULL,
ProductID INT NOT NULL,
Quantity INT NOT NULL,
UnitPrice DECIMAL(18, 2) NOT NULL,
CONSTRAINT FK_OrderDetails_Order FOREIGN KEY (OrderID) REFERENCES Orders(OrderID) ON DELETE CASCADE,
CONSTRAINT FK_OrderDetails_Product FOREIGN KEY (ProductID) REFERENCES Products(ProductID) ON DELETE CASCADE
);
CREATE TABLE Rating (
RatingId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Value INT NOT NULL,
CreatedAt DATETIME NOT NULL,
ProductId INT NOT NULL,
UserId INT NOT NULL,
CONSTRAINT FK_Rating_Product FOREIGN KEY (ProductId) REFERENCES Products(ProductID),
CONSTRAINT FK_Rating_User FOREIGN KEY (UserId) REFERENCES Users(UserID)
);
CREATE TABLE Shipment (
ShipmentID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
UserID INT NOT NULL,
ShipmentAddress NVARCHAR(MAX) NOT NULL,
ShipmentDate DATETIME NULL,
ShipmentStatus NVARCHAR(50) NULL,
CONSTRAINT FK_Shipment_User FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE
);
CREATE TABLE Specification (
SpecificationId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
Value NVARCHAR(MAX) NOT NULL,
ProductId INT NOT NULL,
CONSTRAINT FK_Specification_Product FOREIGN KEY (ProductId) REFERENCES Products(ProductID)
);
CREATE TABLE Wishlist (
WishlistID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
UserID INT NOT NULL,
ProductID INT NOT NULL,
CONSTRAINT FK_Wishlist_User FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE,
CONSTRAINT FK_Wishlist_Product FOREIGN KEY (ProductID) REFERENCES Products(ProductID) ON DELETE CASCADE
);
CREATE TABLE __EFMigrationsHistory (
MigrationId NVARCHAR(150) NOT NULL PRIMARY KEY,
ProductVersion NVARCHAR(32) NOT NULL
);
GO