1+ DROP DATABASE IF EXISTS conference;
2+ CREATE DATABASE conference ;
3+ \c conference;
4+
5+
6+ drop table conference_venue;
7+ drop table session_person;
8+ drop table talk_person;
9+ drop table talk;
10+ drop table session;
11+ drop table location;
12+ drop table venue;
13+ drop table conference_person;
14+ drop table person;
15+ drop table conference;
16+
17+ -- Person Table
18+ CREATE TABLE Person (
19+ PersonID SERIAL PRIMARY KEY ,
20+ FirstName VARCHAR (255 ),
21+ LastName VARCHAR (255 ),
22+ Photo VARCHAR (255 ),
23+ Pronouns VARCHAR (50 ),
24+ Role VARCHAR (255 ),
25+ Organization VARCHAR (255 ),
26+ City VARCHAR (255 ),
27+ Country VARCHAR (255 ),
28+ AskMeAbout TEXT ,
29+ Passion TEXT ,
30+ GoodAt TEXT ,
31+ Bio TEXT ,
32+ Email VARCHAR (255 ),
33+ Phone VARCHAR (50 ),
34+ LinkedInHandle VARCHAR (255 ),
35+ TwitterHandle VARCHAR (255 ),
36+ InstagramHandle VARCHAR (255 ),
37+ URL VARCHAR (255 )
38+ );
39+
40+ -- Conference Table
41+ CREATE TABLE Conference (
42+ ConferenceID SERIAL PRIMARY KEY ,
43+ Name VARCHAR (255 ),
44+ StartDate DATE ,
45+ EndDate DATE
46+ );
47+
48+ -- Venue Table
49+ CREATE TABLE Venue (
50+ VenueID SERIAL PRIMARY KEY ,
51+ Name VARCHAR (255 ),
52+ Address VARCHAR (255 )
53+ );
54+
55+ -- Conference_Venue Junction Table
56+ CREATE TABLE Conference_Venue (
57+ ConferenceID INT ,
58+ VenueID INT ,
59+ FOREIGN KEY (ConferenceID) REFERENCES Conference(ConferenceID),
60+ FOREIGN KEY (VenueID) REFERENCES Venue(VenueID)
61+ );
62+
63+ -- Location Table
64+ CREATE TABLE Location (
65+ LocationID SERIAL PRIMARY KEY ,
66+ Name VARCHAR (255 ),
67+ Description TEXT ,
68+ VenueID INT ,
69+ FOREIGN KEY (VenueID) REFERENCES Venue(VenueID)
70+ );
71+
72+ -- Session Table
73+ CREATE TABLE Session (
74+ SessionID SERIAL PRIMARY KEY ,
75+ ConferenceID INT ,
76+ Name VARCHAR (255 ),
77+ StartDateTime TIMESTAMP ,
78+ EndDateTime TIMESTAMP ,
79+ LocationID INT ,
80+ FOREIGN KEY (ConferenceID) REFERENCES Conference(ConferenceID),
81+ FOREIGN KEY (LocationID) REFERENCES Location(LocationID)
82+ );
83+
84+ -- Talk Table
85+ CREATE TABLE Talk (
86+ TalkID SERIAL PRIMARY KEY ,
87+ Name VARCHAR (255 ),
88+ SessionID INT ,
89+ FOREIGN KEY (SessionID) REFERENCES Session(SessionID)
90+ );
91+
92+ -- Session_Person Junction Table for facilitators and panelists
93+ CREATE TABLE Session_Participant (
94+ SessionID INT ,
95+ PersonID INT ,
96+ Role VARCHAR (50 ),
97+ FOREIGN KEY (SessionID) REFERENCES Session(SessionID),
98+ FOREIGN KEY (PersonID) REFERENCES Person(PersonID),
99+ PRIMARY KEY (SessionID, PersonID, Role)
100+ );
101+
102+ -- Talk_Person Junction Table for speakers and participants
103+ CREATE TABLE Talk_Participant (
104+ TalkID INT ,
105+ PersonID INT ,
106+ Role VARCHAR (50 ),
107+ FOREIGN KEY (TalkID) REFERENCES Talk(TalkID),
108+ FOREIGN KEY (PersonID) REFERENCES Person(PersonID),
109+ PRIMARY KEY (TalkID, PersonID, Role)
110+ );
111+
112+ -- Conference_Person Junction Table
113+ CREATE TABLE Attendee (
114+ ConferenceID INT ,
115+ PersonID INT ,
116+ FOREIGN KEY (ConferenceID) REFERENCES Conference(ConferenceID),
117+ FOREIGN KEY (PersonID) REFERENCES Person(PersonID),
118+ PRIMARY KEY (ConferenceID, PersonID)
119+ );
120+
121+
122+
123+ -- Insert a Conference
124+ INSERT INTO Conference (Name, StartDate, EndDate) VALUES (' Test Summit 2024' , ' 2024-10-01' , ' 2024-10-04' );
125+
126+ -- Insert a Venue
127+ INSERT INTO Venue (Name, Address) VALUES (' Convention Center' , ' 123 Tech Road, San Francisco' );
128+
129+ -- Link the Conference and Venue
130+ INSERT INTO Conference_Venue (ConferenceID, VenueID) VALUES (1 , 1 );
131+
132+ -- Insert Locations within the Venue
133+ INSERT INTO Location (Name, Description, VenueID) VALUES
134+ (' Main Hall' , ' The largest hall for keynotes and plenaries' , 1 ),
135+ (' Room 101' , ' A medium-sized room for workshops' , 1 ),
136+ (' Room 102' , ' A medium-sized room for workshops' , 1 ),
137+ (' Room 103' , ' A medium-sized room for workshops' , 1 ),
138+ (' Outdoor Arena' , ' Open area for social gatherings' , 1 );
139+
140+ -- Insert Sessions
141+ INSERT INTO Session (ConferenceID, Name, StartDateTime, EndDateTime, LocationID) VALUES
142+ -- Complete Session Insertion
143+ (1 , ' Tech Trends 2024' , ' 2024-10-01 11:00:00' , ' 2024-10-01 12:30:00' , 1 ),
144+ (1 , ' Future of Work' , ' 2024-10-01 14:00:00' , ' 2024-10-01 15:30:00' , 3 ),
145+ (1 , ' Sustainable Tech Innovations' , ' 2024-10-01 16:00:00' , ' 2024-10-01 17:30:00' , 4 ),
146+ (1 , ' Company Culture in the New Era' , ' 2024-10-02 09:00:00' , ' 2024-10-02 10:30:00' , 2 ),
147+ (1 , ' Profit & Ethics' , ' 2024-10-02 11:00:00' , ' 2024-10-02 12:30:00' , 3 ),
148+ (1 , ' Business Beyond Profit' , ' 2024-10-02 14:00:00' , ' 2024-10-02 15:30:00' , 4 ),
149+ (1 , ' The Economy of Diversity' , ' 2024-10-02 16:00:00' , ' 2024-10-02 17:30:00' , 5 ),
150+ (1 , ' Advancements in Profit Sharing' , ' 2024-10-03 09:00:00' , ' 2024-10-03 10:30:00' , 2 ),
151+ (1 , ' Globalization: The Next Frontier' , ' 2024-10-03 11:00:00' , ' 2024-10-03 12:30:00' , 3 ),
152+ (1 , ' Panel Discussion: The Future of Economy' , ' 2024-10-03 14:00:00' , ' 2024-10-03 15:30:00' , 1 );
153+
154+ -- Insert Attendees
155+ INSERT INTO Person (FirstName, LastName, Pronouns, Role, Organization, City, Country, Email) VALUES
156+ (
' Don' ,
' Zack' ,
' they/them' ,
' Host' ,
' One Palm' ,
' Walnut Creek' ,
' USA' ,
' [email protected] ' ),
157+ (
' Sam' ,
' Lee' ,
' she/her' ,
' Product Manager' ,
' TechSolutions' ,
' New York' ,
' USA' ,
' [email protected] ' ),
158+ (
' Jordan' ,
' Diaz' ,
' he/him' ,
' CEO' ,
' StartupGen' ,
' Austin' ,
' USA' ,
' [email protected] ' ),
159+ (
' Casey' ,
' Wong' ,
' they/them' ,
' Designer' ,
' CreativeMinds' ,
' Toronto' ,
' Canada' ,
' [email protected] ' );
160+
161+ -- Link Attendees to the Conference
162+ INSERT INTO Attendee (ConferenceID, PersonID) VALUES
163+ (1 , 1 ),
164+ (1 , 2 ),
165+ (1 , 3 ),
166+ (1 , 4 );
167+
168+ -- Assuming Sessions are already inserted, insert Talks
169+ INSERT INTO Talk (Name, SessionID) VALUES
170+ (' Innovating the Future' , 2 ),
171+ (' The Role of Ethics in Modern Economy' , 3 );
172+
173+ -- Assign Speakers and Participants to Talks
174+ -- Assuming Alex Johnson and Sam Lee are speakers, and Jordan Diaz and Casey Wong are participants
175+ INSERT INTO Talk_Participant (TalkID, PersonID, Role) VALUES
176+ (1 , 1 , ' Speaker' ),
177+ (2 , 2 , ' Speaker' ),
178+ (1 , 3 , ' Participant' ),
179+ (2 , 4 , ' Participant' );
180+
181+ -- Assign Facilitators and Panelists to Sessions
182+ -- Assuming Alex and Sam are facilitators for the first two sessions, Jordan and Casey are panelists
183+ INSERT INTO Session_Participant (SessionID, PersonID, Role) VALUES
184+ (1 , 1 , ' Host' ),
185+ (2 , 2 , ' Facilitator' ),
186+ (1 , 3 , ' Panelist' ),
187+ (2 , 4 , ' Panelist' );
0 commit comments