Thiết kế database === ## Bạn đã tự tin về khả năng thiết kế database chưa? 1/ Phân biệt rõ ràng các loại quan hệ - 1:1: A có 1 B, B chỉ có 1 A > 1 người có 1 số CMND > 1 số CMND chỉ thuộc về 1 người > Quan hệ Người:CMND và quan hệ 1:1 > Quan hệ 1:1 thường được biểu diểu bằng cách thêm thuộc tính vào bảng - 1:N: A có nhiều B, mỗi B chỉ thuộc về 1 A > 1 Lớp có nhiều học sinh > 1 Học sinh chỉ thuộc 1 lớp > Thêm khóa ngoại: Hocsinh.lop_id = Lop.id - N:N: A có nhiều B, B có thể có nhiều A > 1 Sinh viên học nhiều khóa học > 1 khóa được nhiều sinh viên học > Thêm bảng: course_student (id: A_I, course_id, student_id) 2/ Thuộc tính là gì? - 1 đối tượng có nhiều thuộc tính 3/ Entity là gì? Attribute là gì? - Entity là thực thể (Lớp đối tượng): Có thể là 1 table - Attribute là thuộc tính: Có thể là field trong table ![](https://i.imgur.com/n8YR2E7.png) https://dbdiagram.io/d/5ec7e92e39d18f5553ff9e03 ## Next steps: - Hiện thực database: - Tạo database, bằng PM Quản trị hoặc code init schemas - Mapping Database thành Model trong code (Mô hình MVC) - Viết API để client gọi - Chuẩn Restful: <Thêm Link> - Đủ các thao tác CRUD: (Create, Read (Listing & Detail), Update, Delete) - Code client (Đề tài) ## Đề tài > Bạn học được gì từ đề tài này #### 1.Init dự án - Theo cấu trúc thư mục có sẵn hoặc tự thiết kế - Cấu hình bundler (webpack) - Cấu hình biến môi trường #### 2. Code - Chọn module cần thiết kế - Chia nhỏ component - Chia đủ nhỏ / đừng quá nhỏ - 1 đoạn code lặp đi lặp lại => Biến thành component - Xác định rõ: Dumb và Smart Component > Nghệ thuật khi code SPA là ở chỗ chia component #### 3. Một vấn đề thực tế mình gặp, tổ chức dữ liệu - Vuex - Service là gì? - Mock là gì? Mock Object/Mock Service/Mock API - Phân quyền / Routing - VD về làm việc với dữ liệu: Filter/Map/Transform dữ liệu #### 4. Kinh nghiệm code ít bug: - DRY - YANGI - Clean Code ## BTVN: Review xem - HTML đã OK chưa? - Viết rõ ràng chưa? - CSS nằm ở đâu? #### Chia ra review / Viết lại thành component > 1 file chứa HTML + CSS (Chưa cần JS / Thuộc tính) - [ ] Home / Menu / Nav: Nam - [ ] Product Detail: An - [ ] Category: Thiên - [ ] Product Loop: Cường