RelationModel: kreiranje.sql

File kreiranje.sql, 1.7 KB (added by 193158, 5 months ago)
Line 
1CREATE TABLE AuditlyUser (
2Id INT PRIMARY KEY,
3FirstName VARCHAR(50) NOT NULL,
4LastName VARCHAR(50) NOT NULL,
5EmailAddress VARCHAR(255) NOT NULL,
6UserDomainName VARCHAR(255)
7);
8
9CREATE TABLE Product (
10DomainName VARCHAR(255) PRIMARY KEY
11);
12
13CREATE TABLE ProductIndustry (
14ProductDomainName VARCHAR(255),
15Industry VARCHAR(255) NOT NULL,
16PRIMARY KEY (ProductDomainName),
17FOREIGN KEY (ProductDomainName) REFERENCES Product(DomainName)
18);
19
20CREATE TABLE Reviewer (
21Id INT PRIMARY KEY,
22FirstName VARCHAR(255) NOT NULL,
23LastName VARCHAR(255) NOT NULL,
24Position VARCHAR(255),
25CompanyName VARCHAR(255),
26EmailAddress VARCHAR(255),
27LinkedInUserProfileUrl VARCHAR(255)
28);
29
30CREATE TABLE Message (
31Id INT PRIMARY KEY,
32UserId INT,
33MessageType VARCHAR(255) CHECK (MessageType IN ('email', 'linkedin')),
34EmailSubject VARCHAR(255),
35EmailText TEXT,
36LinkedInText TEXT,
37FOREIGN KEY (UserId) REFERENCES User(Id),
38CHECK ((MessageType = 'email' AND EmailSubject IS NOT NULL AND EmailText IS NOT NULL) OR (MessageType = 'linkedin' AND LinkedInText IS NOT NULL))
39);
40
41CREATE TABLE Review (
42Id INT PRIMARY KEY,
43ReviewerId INT,
44ProductId INT,
45ReviewSite VARCHAR(255) NOT NULL,
46Sentiment VARCHAR(255),
47ReviewerScore NULL,
48ReviewText TEXT,
49DateOfReview DATE NOT NULL,
50FOREIGN KEY (ReviewerId) REFERENCES Reviewer(Id),
51FOREIGN KEY (ProductId) REFERENCES Product(DomainName)
52CHECK (Sentiment = 'positive' OR Sentiment = 'negative' OR Sentiment = 'neutral')
53CHECK(Sentiment NOT NULL OR ReviewerScore NOT NULL)
54CHECK (ReviewerScore >= 0);
55);
56
57CREATE TABLE ReviewerSocialMediaLinks (
58SocialMediaLink VARCHAR(255) PRIMARY KEY,
59ReviewerId INT,
60SocialMediaType VARCHAR(255),
61FOREIGN KEY (ReviewerId) REFERENCES Reviewer(Id)
62);