RelationalDesign: fill_in1.sql

File fill_in1.sql, 5.4 KB (added by 223075, 7 hours ago)

Скрипта за полнење табели

Line 
1-- fill_in.sql (robust, ID-agnostic)
2
3-- Optional: clear data if re-running
4-- (Do bridges first to avoid FK issues)
5DELETE FROM "User_Purchased_Package";
6DELETE FROM "User_Purchased_Merch";
7DELETE FROM "User_Event";
8DELETE FROM "User_Booked_Class";
9DELETE FROM "Class_Includes_Training";
10
11DELETE FROM "Merch_Items";
12DELETE FROM "Package";
13DELETE FROM "Event";
14DELETE FROM "Class";
15DELETE FROM "Training";
16DELETE FROM "Instructor";
17DELETE FROM "User";
18
19
20INSERT INTO "User" (username, email, password_hash, first_name, last_name)
21VALUES
22('ana123', 'ana@example.com', 'hashA1', 'Ana', 'Naumovska'),
23('mikiYoga', 'miki@example.com', 'hashA2', 'Miki', 'Trajkov'),
24('davidG', 'david@example.com', 'hashA3', 'David', 'Georgiev');
25
26
27INSERT INTO "Instructor" (instructor_email, instructor_password_hash, first_name, last_name, biography)
28VALUES
29('elena@studio.com', 'passElena', 'Elena', 'Petrova', 'Certified in Vinyasa Yoga'),
30('stefan@studio.com', 'passStefan', 'Stefan', 'Ristov', 'Hatha & Yin Yoga Teacher');
31
32
33INSERT INTO "Training" (training_name, description, duration, intensity_level)
34VALUES
35('Vinyasa Flow', 'Linking breath to movement', 60, 'Intermediate'),
36('Hatha Basics', 'Focus on foundational poses', 45, 'Beginner');
37
38
39INSERT INTO "Class" (date, start_time, end_time, location, capacity, seats_available, instructor_id)
40VALUES
41('2025-06-10', '08:00', '09:00', 'Studio A', 20, 20,
42 (SELECT instructor_id FROM "Instructor" WHERE instructor_email='elena@studio.com')),
43('2025-06-10', '09:30', '10:30', 'Studio B', 15, 15,
44 (SELECT instructor_id FROM "Instructor" WHERE instructor_email='stefan@studio.com'));
45
46
47INSERT INTO "Event" (event_name, description, date, time, location)
48VALUES
49('Summer Yoga Workshop', 'Outdoor event for all levels', '2025-07-05', '09:00', 'City Park'),
50('Meditation Retreat', 'Weekend retreat with meditation', '2025-08-01', '08:00', 'Mountain Lodge');
51
52
53INSERT INTO "Package" (package_name, price, num_classes)
54VALUES
55('5-Class Pass', 25.00, 5),
56('10-Class Pass', 45.00, 10);
57
58
59INSERT INTO "Merch_Items" (item_name, description, price, quantity_in_stock)
60VALUES
61('Yoga Mat', 'Eco-friendly TPE mat', 30.00, 50),
62('Yoga Block', 'Cork block for alignment', 12.00, 30);
63
64
65-- Bridge tables (via sub-selects, no hardcoded IDs)
66
67-- User_Booked_Class (books)
68INSERT INTO "User_Booked_Class" (user_id, class_id)
69VALUES
70(
71 (SELECT user_id FROM "User" WHERE email='ana@example.com'),
72 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
73),
74(
75 (SELECT user_id FROM "User" WHERE email='miki@example.com'),
76 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
77),
78(
79 (SELECT user_id FROM "User" WHERE email='david@example.com'),
80 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B')
81);
82
83-- Class_Includes_Training (is_scheduled_for)
84INSERT INTO "Class_Includes_Training" (class_id, training_id)
85VALUES
86(
87 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A'),
88 (SELECT training_id FROM "Training" WHERE training_name='Vinyasa Flow')
89),
90(
91 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B'),
92 (SELECT training_id FROM "Training" WHERE training_name='Hatha Basics')
93);
94
95-- User_Event (registers) (backend expects this table name)
96INSERT INTO "User_Event" (user_id, event_id)
97VALUES
98(
99 (SELECT user_id FROM "User" WHERE email='ana@example.com'),
100 (SELECT event_id FROM "Event" WHERE event_name='Summer Yoga Workshop' AND date='2025-07-05')
101),
102(
103 (SELECT user_id FROM "User" WHERE email='miki@example.com'),
104 (SELECT event_id FROM "Event" WHERE event_name='Meditation Retreat' AND date='2025-08-01')
105);
106
107-- User_Purchased_Package (buys)
108INSERT INTO "User_Purchased_Package" (user_id, package_id)
109VALUES
110(
111 (SELECT user_id FROM "User" WHERE email='ana@example.com'),
112 (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass')
113),
114(
115 (SELECT user_id FROM "User" WHERE email='miki@example.com'),
116 (SELECT package_id FROM "Package" WHERE package_name='10-Class Pass')
117);
118
119-- User_Purchased_Merch (purchases)
120INSERT INTO "User_Purchased_Merch" (user_id, merch_id)
121VALUES
122(
123 (SELECT user_id FROM "User" WHERE email='ana@example.com'),
124 (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Mat')
125),
126(
127 (SELECT user_id FROM "User" WHERE email='ana@example.com'),
128 (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Block')
129),
130(
131 (SELECT user_id FROM "User" WHERE email='miki@example.com'),
132 (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Block')
133);
134
135-- Package_Includes_Class (is_for)
136INSERT INTO "Package_Includes_Class" (package_id, class_id)
137VALUES
138(
139 (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass'),
140 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
141),
142(
143 (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass'),
144 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B')
145),
146(
147 (SELECT package_id FROM "Package" WHERE package_name='10-Class Pass'),
148 (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
149);