HungLuong10/microservice
0
1-- Init data: subjects + topics
2-- Idempotent inserts (won't duplicate existing rows)
3BEGIN;
4
5-- Subjects
6INSERT INTO subject (subject_name)
7SELECT 'Toán'
8WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Toán');
9
10INSERT INTO subject (subject_name)
11SELECT 'Vật Lý'
12WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Vật Lý');
13
14INSERT INTO subject (subject_name)
15SELECT 'Hóa Học'
16WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Hóa Học');
17
18INSERT INTO subject (subject_name)
19SELECT 'Ngữ Văn'
20WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Ngữ Văn');
21
22INSERT INTO subject (subject_name)
23SELECT 'Tiếng Anh'
24WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Tiếng Anh');
25
26INSERT INTO subject (subject_name)
27SELECT 'Sinh Học'
28WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Sinh Học');
29
30INSERT INTO subject (subject_name)
31SELECT 'Lịch Sử'
32WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Lịch Sử');
33
34INSERT INTO subject (subject_name)
35SELECT 'Địa Lý'
36WHERE NOT EXISTS (SELECT 1 FROM subject WHERE subject_name = 'Địa Lý');
37
38-- Topics for Toán
39INSERT INTO topic (title, description, subject_id)
40SELECT 'Đại số', 'Các phương trình, bất đẳng thức, đa thức và tính chất đại số cơ bản.', s.subject_id
41FROM subject s
42WHERE s.subject_name = 'Toán'
43 AND NOT EXISTS (
44 SELECT 1 FROM topic t WHERE t.title = 'Đại số' AND t.subject_id = s.subject_id
45 );
46
47INSERT INTO topic (title, description, subject_id)
48SELECT 'Hình học', 'Hình học phẳng và không gian: tam giác, tứ giác, đường tròn và mối quan hệ hình học.', s.subject_id
49FROM subject s
50WHERE s.subject_name = 'Toán'
51 AND NOT EXISTS (
52 SELECT 1 FROM topic t WHERE t.title = 'Hình học' AND t.subject_id = s.subject_id
53 );
54
55INSERT INTO topic (title, description, subject_id)
56SELECT 'Giải tích', 'Đạo hàm, tích phân, giới hạn và các ứng dụng cơ bản.', s.subject_id
57FROM subject s
58WHERE s.subject_name = 'Toán'
59 AND NOT EXISTS (
60 SELECT 1 FROM topic t WHERE t.title = 'Giải tích' AND t.subject_id = s.subject_id
61 );
62
63-- Topics for Vật Lý
64INSERT INTO topic (title, description, subject_id)
65SELECT 'Cơ học', 'Chuyển động, lực và định luật Newton.', s.subject_id
66FROM subject s
67WHERE s.subject_name = 'Vật Lý'
68 AND NOT EXISTS (
69 SELECT 1 FROM topic t WHERE t.title = 'Cơ học' AND t.subject_id = s.subject_id
70 );
71
72INSERT INTO topic (title, description, subject_id)
73SELECT 'Điện học', 'Dòng điện, điện áp, điện trở và mạch điện cơ bản.', s.subject_id
74FROM subject s
75WHERE s.subject_name = 'Vật Lý'
76 AND NOT EXISTS (
77 SELECT 1 FROM topic t WHERE t.title = 'Điện học' AND t.subject_id = s.subject_id
78 );
79
80INSERT INTO topic (title, description, subject_id)
81SELECT 'Quang học', 'Ánh sáng, phản xạ, khúc xạ và thấu kính.', s.subject_id
82FROM subject s
83WHERE s.subject_name = 'Vật Lý'
84 AND NOT EXISTS (
85 SELECT 1 FROM topic t WHERE t.title = 'Quang học' AND t.subject_id = s.subject_id
86 );
87
88-- Topics for Hóa Học
89INSERT INTO topic (title, description, subject_id)
90SELECT 'Hữu cơ', 'Hợp chất cacbon và các phản ứng hữu cơ cơ bản.', s.subject_id
91FROM subject s
92WHERE s.subject_name = 'Hóa Học'
93 AND NOT EXISTS (
94 SELECT 1 FROM topic t WHERE t.title = 'Hữu cơ' AND t.subject_id = s.subject_id
95 );
96
97INSERT INTO topic (title, description, subject_id)
98SELECT 'Vô cơ', 'Nguyên tố, hợp chất vô cơ và phản ứng liên quan.', s.subject_id
99FROM subject s
100WHERE s.subject_name = 'Hóa Học'
101 AND NOT EXISTS (
102 SELECT 1 FROM topic t WHERE t.title = 'Vô cơ' AND t.subject_id = s.subject_id
103 );
104
105INSERT INTO topic (title, description, subject_id)
106SELECT 'Hóa phân tích & vật lý hóa', 'Cân bằng, phương pháp phân tích và khái niệm nhiệt động học.', s.subject_id
107FROM subject s
108WHERE s.subject_name = 'Hóa Học'
109 AND NOT EXISTS (
110 SELECT 1 FROM topic t WHERE t.title = 'Hóa phân tích & vật lý hóa' AND t.subject_id = s.subject_id
111 );
112
113-- Topics for Ngữ Văn
114INSERT INTO topic (title, description, subject_id)
115SELECT 'Văn học', 'Phân tích tác phẩm, tác giả và bối cảnh văn học.', s.subject_id
116FROM subject s
117WHERE s.subject_name = 'Ngữ Văn'
118 AND NOT EXISTS (
119 SELECT 1 FROM topic t WHERE t.title = 'Văn học' AND t.subject_id = s.subject_id
120 );
121
122INSERT INTO topic (title, description, subject_id)
123SELECT 'Ngữ pháp & kỹ năng viết', 'Ngữ pháp tiếng Việt, chính tả và kỹ năng viết cơ bản.', s.subject_id
124FROM subject s
125WHERE s.subject_name = 'Ngữ Văn'
126 AND NOT EXISTS (
127 SELECT 1 FROM topic t WHERE t.title = 'Ngữ pháp & kỹ năng viết' AND t.subject_id = s.subject_id
128 );
129
130INSERT INTO topic (title, description, subject_id)
131SELECT 'Phong cách văn bản', 'Thuyết minh, nghị luận, tự sự và cách triển khai ý.', s.subject_id
132FROM subject s
133WHERE s.subject_name = 'Ngữ Văn'
134 AND NOT EXISTS (
135 SELECT 1 FROM topic t WHERE t.title = 'Phong cách văn bản' AND t.subject_id = s.subject_id
136 );
137
138-- Topics for Tiếng Anh
139INSERT INTO topic (title, description, subject_id)
140SELECT 'Ngữ pháp', 'Cấu trúc câu, các thì và mệnh đề trong tiếng Anh.', s.subject_id
141FROM subject s
142WHERE s.subject_name = 'Tiếng Anh'
143 AND NOT EXISTS (
144 SELECT 1 FROM topic t WHERE t.title = 'Ngữ pháp' AND t.subject_id = s.subject_id
145 );
146
147INSERT INTO topic (title, description, subject_id)
148SELECT 'Từ vựng', 'Học từ mới theo chủ đề, collocations và cách dùng.', s.subject_id
149FROM subject s
150WHERE s.subject_name = 'Tiếng Anh'
151 AND NOT EXISTS (
152 SELECT 1 FROM topic t WHERE t.title = 'Từ vựng' AND t.subject_id = s.subject_id
153 );
154
155INSERT INTO topic (title, description, subject_id)
156SELECT 'Kỹ năng nghe/nói', 'Luyện nghe, phát âm, hội thoại và phản xạ giao tiếp.', s.subject_id
157FROM subject s
158WHERE s.subject_name = 'Tiếng Anh'
159 AND NOT EXISTS (
160 SELECT 1 FROM topic t WHERE t.title = 'Kỹ năng nghe/nói' AND t.subject_id = s.subject_id
161 );
162
163-- Topics for Sinh Học
164INSERT INTO topic (title, description, subject_id)
165SELECT 'Sinh học tế bào', 'Cấu trúc và chức năng tế bào, phân bào và sinh học phân tử.', s.subject_id
166FROM subject s
167WHERE s.subject_name = 'Sinh Học'
168 AND NOT EXISTS (
169 SELECT 1 FROM topic t WHERE t.title = 'Sinh học tế bào' AND t.subject_id = s.subject_id
170 );
171
172INSERT INTO topic (title, description, subject_id)
173SELECT 'Di truyền học', 'Gen, ADN, di truyền và luật Mendel.', s.subject_id
174FROM subject s
175WHERE s.subject_name = 'Sinh Học'
176 AND NOT EXISTS (
177 SELECT 1 FROM topic t WHERE t.title = 'Di truyền học' AND t.subject_id = s.subject_id
178 );
179
180INSERT INTO topic (title, description, subject_id)
181SELECT 'Sinh thái học', 'Hệ sinh thái, mối quan hệ sinh học và chu trình vật chất.', s.subject_id
182FROM subject s
183WHERE s.subject_name = 'Sinh Học'
184 AND NOT EXISTS (
185 SELECT 1 FROM topic t WHERE t.title = 'Sinh thái học' AND t.subject_id = s.subject_id
186 );
187
188-- Topics for Lịch Sử
189INSERT INTO topic (title, description, subject_id)
190SELECT 'Lịch sử Việt Nam', 'Các giai đoạn, sự kiện và nhân vật quan trọng của lịch sử Việt Nam.', s.subject_id
191FROM subject s
192WHERE s.subject_name = 'Lịch Sử'
193 AND NOT EXISTS (
194 SELECT 1 FROM topic t WHERE t.title = 'Lịch sử Việt Nam' AND t.subject_id = s.subject_id
195 );
196
197INSERT INTO topic (title, description, subject_id)
198SELECT 'Lịch sử Thế giới', 'Sự hình thành các nền văn minh, chiến tranh và biến cố toàn cầu.', s.subject_id
199FROM subject s
200WHERE s.subject_name = 'Lịch Sử'
201 AND NOT EXISTS (
202 SELECT 1 FROM topic t WHERE t.title = 'Lịch sử Thế giới' AND t.subject_id = s.subject_id
203 );
204
205INSERT INTO topic (title, description, subject_id)
206SELECT 'Cận đại & Hiện đại', 'Sự kiện từ thế kỷ XIX đến nay và ảnh hưởng của chúng.', s.subject_id
207FROM subject s
208WHERE s.subject_name = 'Lịch Sử'
209 AND NOT EXISTS (
210 SELECT 1 FROM topic t WHERE t.title = 'Cận đại & Hiện đại' AND t.subject_id = s.subject_id
211 );
212
213-- Topics for Địa Lý
214INSERT INTO topic (title, description, subject_id)
215SELECT 'Địa lý tự nhiên', 'Địa hình, khí hậu, thủy văn và các yếu tố tự nhiên.', s.subject_id
216FROM subject s
217WHERE s.subject_name = 'Địa Lý'
218 AND NOT EXISTS (
219 SELECT 1 FROM topic t WHERE t.title = 'Địa lý tự nhiên' AND t.subject_id = s.subject_id
220 );
221
222INSERT INTO topic (title, description, subject_id)
223SELECT 'Địa lý kinh tế - dân cư', 'Phân bố dân cư, tài nguyên và hoạt động kinh tế.', s.subject_id
224FROM subject s
225WHERE s.subject_name = 'Địa Lý'
226 AND NOT EXISTS (
227 SELECT 1 FROM topic t WHERE t.title = 'Địa lý kinh tế - dân cư' AND t.subject_id = s.subject_id
228 );
229
230INSERT INTO topic (title, description, subject_id)
231SELECT 'Bản đồ học & kỹ năng', 'Đọc bản đồ, tọa độ và kỹ năng biểu diễn không gian.', s.subject_id
232FROM subject s
233WHERE s.subject_name = 'Địa Lý'
234 AND NOT EXISTS (
235 SELECT 1 FROM topic t WHERE t.title = 'Bản đồ học & kỹ năng' AND t.subject_id = s.subject_id
236 );
237
238COMMIT;
239
240
241 