Trong quá trình nghiên cứu, xây dựng và phát triển đề tài, em đã gặp nhiều khókhăn và phương án để giải quyết vấn đề là: tham khảo, hỏi ý kiến từ các forum, xin ýkiến đóng góp của giảng
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ CÔNG NGHIỆP LONG AN
KHOA KỸ THUẬT CÔNG NGHỆ
BÁO CÁO MÔN HỌC THIẾT KẾ VÀ LẬP TRÌNH WEB VỚI ASP.NET
Trang 2LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến thầy Ths Ngô Văn Linh – giảng viên bộ
môn “Thiết kế và lập trình Web với ASP.NET” trong Khoa Kỹ thuật Công nghệ đã
trang bị cho em những kiến thức, kỹ năng cơ bản để hoàn thành đề tài nghiên cứu này
Tuy nhiên trong quá trình nghiên cứu thực hiện đề tài, do kiến thức chuyênngành còn hạn chế nên em vẫn còn nhiều thiếu sót khi tìm hiểu, trình bày sản phẩm đềtài Rất mong nhận được sự quan tâm, góp ý của thầy để đề tài của em được đầy đủ vàhoàn chỉnh hơn
Xin chân thành cảm ơn
Long An, ngày 15 tháng 08 năm 2020
Sinh viên thực hiện
Lê Thành Đạt
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Long An, ngày 15 tháng 08 năm 2020
Giảng viên hướng dẫn
Ths Ngô Văn Linh
Trang 4Trong quá trình nghiên cứu, xây dựng và phát triển đề tài, em đã gặp nhiều khókhăn và phương án để giải quyết vấn đề là: tham khảo, hỏi ý kiến từ các forum, xin ýkiến đóng góp của giảng viên hướng dẫn, trao đổi thông tin với bạn bè…
Và kết quả đã đạt được, em đã xây dựng thành công website tuyển dụng đápứng một số yêu cầu đã đặt ra Hệ thống được vận hành dễ dàng mọi lúc mọi nơi trênmọi thiết bị có hỗ trợ truy cập internet, giao diện tương quan tự động co giản có cấutrúc phù hợp với từng kích thước màn hình hiển thị khác nhau của thiết bị sử dụng
Trang 5MỤC LỤC
CHƯƠNG 1: TỔNG QUAN 11
1.1 GIỚI THIỆU TỔNG QUAN 11
1.2 MỤC ĐÍCH CHỌN ĐỀ TÀI 11
1.3 PHẠM VI NGHIÊN CỨU 11
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 12
1.5 MỤC TIÊU CẦN ĐẠT 12
1.6 ĐẶC TẢ ĐỀ TÀI 12
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13
2.1 CÔNG NGHỆ ASP.NET MVC5 13
2.1.1 Lịch sử ra đời: 13
2.1.2 Sự khác nhau giữa MVC và webform 14
2.1.3 Kiến trúc sử dụng ASP.NET MVC 14
2.2 MÔ HÌNH MVC5 17
2.2.1 Các tính năng của mô hình MVC3 và MVC4 17
2.2.2 Các cải tiến của MVC5 18
2.3 GIỚI THIỆU ENTITY FRAMEWORK 20
2.3.1 Tổng quan 20
2.3.2 Tầng Application 21
2.3.3 Tầng Object Services 21
2.3.4 Tầng EntityClient Data Provider 22
2.3.5 Tầng ADO.NET Data Providers 23
2.3.6 Tầng EDM (Entity Data Model) 23
2.3.7 Cách sử dụng trong Entity Framework 24
2.4 TỔNG QUAN VỀ SQL SERVER 25
2.5 TỔNG QUAN VỀ NGÔN NGỮ GIAO DIỆN 25
Trang 62.5.1 HTML và CSHTML 25
2.5.2 Razor View Engine 26
2.5.3 CSS (Cascading Style Sheets) 27
2.5.4 Bootstrap 28
2.5.5 JavaScript, JQuery và Ajax 28
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 31
3.1 MÔ HÌNH CƠ SỞ DỮ LIỆU 31
3.2 TỔ CHỨC BẢNG DỮ LIỆU 32
3.2.1 Bảng dữ liệu Application 32
3.2.2 Bảng dữ liệu CategoryJob 32
3.2.3 Bảng dữ liệu Company 32
3.2.4 Bảng dữ liệu Degree 33
3.2.5 Bảng dữ liệu Employee 33
3.2.6 Bảng dữ liệu Experience 34
3.2.7 Bảng dữ liệu Formality 34
3.2.8 Bảng dữ liệu Job 34
3.2.9 Bảng dữ liệu Member 35
3.2.10 Bảng dữ liệu Member_Permission 35
3.2.11 Bảng dữ liệu Permission 36
3.2.12 Bảng dữ liệu Province 36
3.2.13 Bảng dữ liệu Salary 36
3.2.14 Bảng giữ liệu Gender 36
3.2.15 Bảng dữ liệu Type 36
3.2.16 Bảng dữ liệu TypeOfMember 36
3.3 PHÂN TÍCH MỐI QUAN HỆ DỮ LIỆU GIỮA CÁC THỰC THỂ 37
CHƯƠNG 4: DEMO VÀ TRIỂN KHAI HỆ THỐNG 40
Trang 74.1.1 Phần 1 Header bao gồm hình ảnh container các nút nhấn thao tác và thanh
tìm kiếm nhanh 40
4.1.2 Phần 2 Body bao gồm các section ngành nghề nổi bật, danh sách công việc và nhà tuyển dụng hàng đầu 41
4.1.3 Phần 3 Footer Bao gồm thông tin, địa chỉ liên lạc, ngành nghề nổi bật và đăng ký email để nhận thông tin về website 43
4.2 GIAO DIỆN TÌM VIỆC 44
4.2.1 Phần 1 Header bao gồm banner hiển thị số lượng công việc và các phím điều hướng 44
4.2.2 Phần 2 Body bao gồm thanh tìm kiếm và section thể hiện dựa vào kết quả tìm kiếm 45
4.2.3 Phần 3 Footer Bao gồm thông tin, địa chỉ liên lạc, ngành nghề nổi bật và đăng ký email để nhận thông tin về website 47
4.3 GIAO DIỆN ỨNG VIÊN 48
4.3.1 Phần thông tin 48
4.3.2 Phần cập nhật thông tin 50
4.3.3 Phần việc làm 52
4.4 GIAO DIỆN NHÀ TUYỂN DỤNG 53
4.4.1 Phần thông tin công ty 53
4.4.2 Phần công việc 55
4.4.3 Phần ứng tuyển đã duyệt 56
4.4.4 Phần ứng tuyển chưa duyệt 57
4.4.5 Phần cập nhật thông tin công ty 58
4.5 GIAO DIỆN CHỨC NĂNG 60
4.5.1 Chức năng đăng nhập 60
4.5.2 Chức năng đăng ký 62
4.5.3 Chức năng quản lý ngành nghề 64
4.5.4 Chức năng quản lý trình độ 65
Trang 84.5.5 Chức năng quản lý kinh nghiệm 66
4.5.6 Chức năng quản lý hình thức làm việc 67
4.5.7 Chức năng quản lý tỉnh thành 68
4.5.8 Chức năng quản lý mức lương 69
4.5.9 Chức năng quản lý giới tính 70
4.5.10 Chức năng quản lý loại công việc 71
4.5.11 Chức năng quản lý công việc 72
CHƯƠNG 5: KẾT LUẬN 73
5.1 KẾT QUẢ VÀ KINH NGHIỆM 73
5.1.1 Kết quả 73
5.1.2 Kinh nghiệm 73
5.1.3 Hạn chế 73
5.2 HƯỚNG PHÁT TRIỂN 73 TÀI LIỆU THAM KHẢO
MỤC LỤC HÌNH ẢNH
Trang 9Hình 2.1 Mô hình MVC 15
Hình 2.2 Mô hình kiến trúc Entity Framework 21
Hình 2.3 Lưu đồ Entity Mapping Model 24
Hình 2.4 Sơ đồ minh họa mối quan hệ các thành phần trong EF 25
Hình 2.5 Minh họa khối mã lệnh Razor View 27
Hình 2.6 Vai trò CSS với Website 28
Hình 3.1.Mô hình cơ sở dữ liệu 31
Hình 4.1 Header trên máy tính của giao diện chính 40
Hình 4.2 Header trên smartphone của giao diện chính 40
Hình 4.3 Body trên máy tính của giao diện chính 41
Hình 4.4 Body trên smartphone của giao diện chính 42
Hình 4.5 Footer trên máy tính của giao diện chính 43
Hình 4.6 Footer trên smartphone của giao diện chính 43
Hình 4.7 Header trên máy tính của giao diện tìm việc 44
Hình 4.8 Header trên smartphone của giao diện tìm việc 44
Hình 4.9 Body trên máy tính của giao diện tìm việc 45
Hình 4.10.Thanh tìm kiếm trên smart phone của giao diện tìm việc 45
Hình 4.11 Section thể hiện dựa vào kết quả tìm kiếm trên smartphone của giao diện tìm việc 46
Hình 4.12 Footer trên máy tính của giao diện tìm việc 47
Hình 4.13 Footer trên smartphone của giao diện tìm việc 47
Hình 4.14 Giao diện thông tin ứng viên trên máy tính 48
Hình 4.15 Giao diện thông tin ứng viên trên smartphone 49
Hình 4.16 Giao diện cập nhật thông tin trên máy tính 50
Hình 4.17 Giao diện cập nhật thông tin trên smartphone 51
Hình 4.18.Giao diện việc làm trên smartphone 52
Hình 4.19 Giao diện việc làm trên máy tính 52
Hình 4.20.Giao diện thông tin công ty trên máy tính 53
Hình 4.21.Giao diện thông tin công ty trên smartphone 54
Hình 4.22 Giao diện công việc trên máy tính 55
Hình 4.23 Giao diện công việc trên smartphone 55
Hình 4.24 Giao diện ứng tuyển đã duyệt trên máy tính 56
Trang 10Hình 4.25 Giao diện ứng tuyển đã duyệt trên smartphone 56
Hình 4.26 Giao diện ứng tuyển chưa duyệt trên máy tính 57
Hình 4.27 Giao diện ứng tuyển chưa duyệt trên smartphone 57
Hình 4.28 Giao diện cập nhật thông tin công ty trên máy tính 58
Hình 4.29 Giao diện cập nhật thông tin công ty trên smartphone 59
Hình 4.30 Chức năng đăng nhập cho ứng viên 60
Hình 4.31 Chứng năng đăng nhập cho nhà tuyển dụng 60
Hình 4.32 Chức năng đăng nhập của quản trị viên 61
Hình 4.33.Chức năng đăng ký cho ứng viên 62
Hình 4.34 Chức năng đăng ký cho nhà tuyển dụng 63
Hình 4.35 Quản lý ngành nghề 64
Hình 4.36 Thêm ngành nghề 64
Hình 4.37 Quản lý trình độ 65
Hình 4.38 Thêm trình độ 65
Hình 4.39 Quản lý kinh nghiệm 66
Hình 4.40 Thêm kinh nghiệm 66
Hình 4.41 Quản lý hình thức làm việc 67
Hình 4.42 Thêm hình thức làm việc 67
Hình 4.43 Quản lý tỉnh thành 68
Hình 4.44 Thêm tỉnh thành 68
Hình 4.45 Quản lý mức lương 69
Hình 4.46 Thêm mức lương 69
Hình 4.47 Quản lý giới tính 70
Hình 4.48 Thêm giới tính 70
Hình 4.49 Quản lý loại công việc 71
Hình 4.50 Thêm loại công việc 71
Hình 4.51 Quản lý công việc 72
Hình 4.52 Thêm công việc 72
MỤC LỤC BẢNG
Trang 11Bảng 2.1 Lịch sử các phiên bản MVC 13
BẢNG 2.2 Sự khác nhau giữa MVC và Webform 14
BẢNG 2.3 Các loại security trong MVC5 19
BẢNG 2.4 Bảng ánh xạ tương đương giữa các đối tượng trong database và EF 22
BẢNG 3.1 Bảng dữ liệu Application 32
BẢNG 3.2 Bảng dữ liệu CategoryJob 32
BẢNG 3.3 Bảng dữ liệu Company 33
BẢNG 3.4 Bảng dữ liệu Degree 33
BẢNG 3.5 Bảng dữ liệu Employee 34
BẢNG 3.6 Bảng dữ liệu Experience 34
BẢNG 3.7 Bảng dữ liệu Formality 34
BẢNG 3.8 Bảng dữ liệu Job 35
BẢNG 3.9 Bảng dữ liệu Member 35
BẢNG 3.10 Bảng dữ liệu Member_Permission 35
BẢNG 3.11 Bảng dữ liệu Permission 36
BẢNG 3.12 Bảng dữ liệu Province 36
BẢNG 3.13 Bảng dữ liệu Salary 36
BẢNG 3.14 Bảng giữ liệu Gender 36
BẢNG 3.15 Bảng dữ liệu Type 36
BẢNG 3.16 Bảng dữ liệu TypeOfMember 37
BẢNG 3.17 Phân tích mối quan hệ dữ liệu giữa các thực thể 39
Trang 12CHƯƠNG 1: TỔNG QUAN
1.1 GIỚI THIỆU TỔNG QUAN
Ngày nay, cùng với sự phát triển vượt bậc của công nghệ thông tin, Microsoft(MS) một trong những đơn vị tuyên phong cho ra đời một nền tảng ứng dựng thế hệmới chính là WEB APPLICATION (WAPP) WAPP được phát triển trên nềntảng NET Framework và được vận hành bằng ứng dụng truy cập Website thôngthường (Browser) một cách đơn giản, tiện dụng trên mọi thiết bị có hỗ trợ truy cậpwebsite và quá trình vận hành được thực hiện mọi lúc, mọi nơi Đây là một công nghệrất tiên tiến, đủ để đáp ứng cho nhu cầu công việc ngày càng phát triển, khâu quản lýngày càng được quan tâm và đặc biệt hơn hết tính tiện dụng đa nền tảng, đa thiết bịngày càng được quan trọng Công nghệ WAPP có thể thay thế hoàn toàn cho Winformmột nền tảng phát triển ứng dụng cho ra đời các phần mềm được chạy trên hệ điềuhành Windows mà hầu hết chúng ta đang được học, phát triển và sử dụng trong thờigian qua
1.2 MỤC ĐÍCH CHỌN ĐỀ TÀI
Nhằm đáp ứng nhu cầu thực tế, xây dựng một hệ thống tuyển dụng việc làmhoạt động độc lập được vận hành mọi lúc mọi nơi, trên mọi thiết bị chỉ cần trang bịmột trình duyệt có khả năng truy cập Website
Nhằm tạo điều kiện thực hiện nghiên cứu, phát triển khả năng bản thân, gópphần phát triển xã hội
1.3 PHẠM VI NGHIÊN CỨU
Quản lý công ty, doanh nghiệp bao gồm quản lý các thông tin: tên, địa chỉ, quy
mô, công việc, thông tin liên lạc
Quản lý cá nhân cần tìm việc bao gồm quản lý các thông tin: tên, địa chỉ, giớitính, trình độ, bằng cấp, thông tin liêm lạc
Quản lý công việc bao gồm quảng lý các thông tin: Loại công việc, công ty,mức lương, yêu cầu công việc
Trang 131.4 PHƯƠNG PHÁP NGHIÊN CỨU
- Tìm hiểu về nhu cầu nhân lực của các công ty, doanh nghiệp
- Nghiên cứu nhu cầu tìm việc của sinh và các cá nhân có nhu cầu
- Tìm hiểu về các thông tin yêu cầu khi tuyển dụng của các công ty tuyển dụng
- Tham kháo các mô hình, hệ thống website việc làm
1.5 MỤC TIÊU CẦN ĐẠT
- Thêm và quản lý người dùng (công ty, doanh nghiệp) vào hệ thống
- Thêm khách hàng và quản lý thông tin các ứng viên tìm việc vào trong hệthống
- Thêm và quản lý công việc từ các công ty, doanh nghiệp vào hệ thống
1.6 ĐẶC TẢ ĐỀ TÀI
Đề tài “Xây dựng website tuyển dụng trên nền tảng ASP.NET MVC5” đượchình thành trên ý tưởng ứng dụng công nghệ thông tin vào công việc tuyển dụng chocác công ty doanh nghiệp và giúp mọi người có thể tìm được việc làm dễ dàng
Các công ty,doanh nghiệp muốn tuyển dụng chỉ cần đăng ký tài và đăng tuyểncông việc dựa vào các thông tin và mẫu được cung cấp từ website
Các ứng viên có nhu cầu tìm việc làm muốn tìm việc chỉ cần đăng ký tài khoảnsau đó cập nhật thông tin để có thể thu hút các nhà tuyển dụng tăng cơ hội có việc làm
Công ty,doanh nghiệp và ứng viên dùng hệ thống tùy vào mức độ cho phép mà
sử dụng các tính năng khác nhau được phân quyền bởi quản trị viên hệ thống
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 CÔNG NGHỆ ASP.NET MVC5
2.1.1 Lịch sử ra đời:
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm XeroxPARC ở Palo Alto Sự ra đời của giao diện đồ họa (GUI) và lập trình hướng đối tượng(Object Oriented Programming) cho phép lập trình viên làm việc với những thànhphần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó.Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho rađời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug.MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80 Các giấy tờ quan trọngđầu tiên được công bố trên MVC là “A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và StephenPope, xuất bản trong tháng 8 / tháng 9 năm 1988
Thế hệ tiếp theo của MVC xuất hiện cùng với hệ điều hành NeXT và các phầnmềm của nó
Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn
đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm
Vì vậy sau đó, lần lượt các MVC framework ra đời dựa trên mô hình MVC như:CodeIgniter, Zend, ASP.NET MVC …
Trang 152.1.2 Sự khác nhau giữa MVC và webform
Thành phần ASP.net MVC chia ra làm 3
phần:
– Models – View – ControllerMọi tương tác của người dùngvới Views sẽ được xử lý thôngqua việc thực hiện các actionhành động trong Controllers,không còn postback, lifecycle vàevents
ASP.net WebForm sử dụngViewState để quản lý Cáctrang ASP.net đều cólifecycle, postback và dùngcác web controls, các event
để thực hiện các hành độngcho UI (User Interface) Khi
có sự tương tác với ngườidùng nên hầu hết ASP.netWebForm xử lý chậm
Việc kiểm tra
(test), gỡ lỗi
(debug)
Đối với MVC thì việc đó có thể
sử dụng các unit test có thể thẩmđịnh rất dễ dàng các Controllersthực hiện như thế nào
Với ASP.net WebForm đềuphải chạy tất cả các tiến trìnhcủa ASP.net, và sự thay đổi
ID của bất kỳ Controls nàocũng ảnh hưởng đến ứngdụng
BẢNG CƠ SỞ LÝ THUYẾT.2 Sự khác nhau giữa MVC và Webform
2.1.3 Kiến trúc sử dụng ASP.NET MVC
ASP.NET MVC được thiết kế một cách gọn nhẹ, giảm thiểu sự phức tạp củaviệc xây dựng ứng dụng website bằng cách chia một ứng dụng thành 3 tầng (layer):Model, View và Controller Sự chia nhỏ này giúp lập trình viên dễ dàng kiểm soát cácthành phần trong khi phát triển, cũng như lợi ích lâu dài trong việc kiểm tra, bảo trì vànâng cấp
- Model: Model chứa và thể hiện các đặc tính và logic ứng dụng Theo một cách
hiểu khác, Model đại diện cho dữ liệu và logic cốt lõi Nó chính là những lớp (class)chứa thông tin về các đối tượng mà ta cần phải thao tác, làm việc trên nó Ví dụ: “Sảnphẩm” chứa các thông tin như “Tên sản phẩm”, ”Loại sản phẩm”, “Đơn giá”, …
Trang 16- View: View làm nhiệm vụ thể hiện một Model hay nhiều Model một cách trực
quan, nó nhận thông tin (một Model hoặc nhiều Model) sau đó biểu diễn lên trangwebsite
- Controller: Controller nằm giữa tầng View và Model, làm nhiệm vụ tìm kiếm,
xử lý một hoặc nhiều Model, sau đó gửi Model tới View để View hiển thị
Hình CƠ SỞ LÝ THUYẾT.1 Mô hình MVC
- Tiếp tục hỗ trợ các tính năng trong ASP.NET
o Hỗ trợ sử dụng các các tập tin:.ASPX, ASCX, Master như là thànhphần View
o Hỗ trợ đầy đủ các tính năng bảo mật của ASP.net: Form/ Windowsauthenticate, URL authorization, membership/roles, output và datacaching, section/ profile state, configuration system, providerarchitecture
- Tách rõ ràng các mối liên quan, mở ra khả năng test TDD (Test DrivenDeveloper)
o Có thể test unit trong ứng dụng mà không cần phải chạy Controllerscùng với tiến trình của ASP.NET và có thể dùng bất kỳ một unit testingframework nào như NUnit, MBUnit, MS Test,…
- Có khả năng mở rộng, mọi thứ trong MVC được thiết kế để dễ thay thế, dễdàng tùy biến Ánh xạ URL mạnh mẽ, cho phép xây dựng ứng dụng với nhữngURL sạch
Trang 17- Không sử dụng mô hình post-back từ giao diện gửi đến server Thay vào đó,chủ động đưa những post-back từ View đến thẳng lớp Controller.
- Hỗ trợ nhiều công cụ tạo View (Support for Multiple View Engines)
o Cho phép chọn công cụ tạo view Hộp thoại New Project cho phép xácđịnh view engine mặc định cho một project
o Các loại view engine
Web Forms (ASPX)
o ASP.NET còn có khả năng phân tích URL, chuyển các thông số trongURL thành các tham số trong lời gọi hàm của Controller
- Model Binding
o Model Binding là tính năng thế mạnh của ASP.NET MVC (và bây giờ
nó cũng được áp dụng cho cả Web Forms trong phiên bản ASP.NET4.5)
o Hỗ trợ bạn viết phương thức nhận một đối tượng tùy biến như là mộttham số
o Với sự hỗ trợ của Model Binding, bây giờ bạn chỉ cần tập trung vào việccài đặt các nghiệp vụ logic, không cần phải bận tâm về việc suy nghĩlàm cách nào để ánh xạ dữ liệu từ người dùng sang các đối tượng NET
- Filters
o Là tính năng mạnh trong ASP.NET MVC Hỗ trợ cho việc kiểm tra tínhhợp lệ trước khi một action method được gọi hoặc sau khi một actionmethod thi hành
Trang 18- Controller được cải tiến hơn như thuộc tính ViewBag và kiểu ActionResult
- Cải thiện Dependency Injection với IDpendencyResolver (có 2 phần:DependencyResolver và interface IDpendencyResolver) trong ASP.NETMVC3; đây là lớp thực thi mô hình Service Locator, cho phép framework gọiDIContainer khi cần làm việc với 1 lớp thực thi từ 1 kiểu cụ thể
- Cách tiếp cận với JavaScript được hạn chế
- - Hỗ trợ caching trong Partial page
Trang 19- Mẫu Empty Project là project trống, phù hợp cho những developer muốn nângcao khả năng lập trình với ASP.NET MVC4.
- Giới thiệu jQuery Mobile và mẫu Mobile Project cho dự án
- Hỗ trợ Asynchronous Controller
- Kiểm soát Bundling và Minification thông qua web.config
- Hỗ trợ cho việc đăng nhập OAuth và OpenID bằng cách sử dụng thư việnDotNetOpenAuth Cho phép Logins từ Facebook và những tài khoản khác
- Phiên bản mới Windows Azure SDK 1.6 được phát hành
2.2.2 Các cải tiến của MVC5
- Với MVC5 thì cải tiến hơn so với ASP.NET MVC4, Bootstrap được thay thếmẫu MVC mặc định
- Chứng thực người dùng Authentication Filter được tuỳ chỉnh hoặc chứng thực
- Những lý do để sử dụng Bootstrap:
o Được viết bởi những người có óc thẩm mỹ và tài năng trên khắp thếgiới Sự tương thích của trình duyệt với thiết bị đã được kiểm tra nhiềulần nên có thể tin tưởng kết quả mình làm ra và nhiều khi không cầnkiểm tra lại Vì vậy, giúp cho dự án của bạn tiết kiệm được thời gian vàtiền bạc
o Chỉ cần biết sơ qua HTML, CSS, Javascript, Jquery là bạn có thể sửdụng Bootstrap để tạo nên một trang web sang trọng và đầy đủ Nhưnglại không cần code quá nhiều CSS
Trang 20o Với giao diện mặc định là màu xám bạc sang trọng, hỗ trợ cáccomponent thông dụng mà các website hiện nay cần có Vì nó làopensource nên bạn có thể vào mã nguồn của nó để thay đổi theo ý thíchcủa bản thân.
o Do có sử dụng Grid System nên Bootstrap mặc định hỗ trợ Responsive.Bootstrap được viết theo xu hướng Mobile First tức là ưu tiên giao diệntrên Mobile trước Nên việc sử dụng Bootstrap cho website của bạn sẽphù hợp với tất cả kích thước màn hình Nhờ đó mà chúng ta không cầnxây dựng thêm một trang web riêng biệt cho mobile
o Đội ngũ phát triển Bootstrap đã bổ sung thêm tính năng Customizer.Giúp cho designer có thể lựa chọn những thuộc tính, component phùhợp với project của họ Chức năng này giúp ta không cần phải tải toàn
bộ mã nguồn về máy
2.2.2.2 Authentication Filter
- Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùnghợp lệ truy cập vào hệ thống ASP.NET đưa ra 2 khái niệm: Authentication vàAuthorize
- Authentication là xác thực người dùng, trong MVC5 Authentication Filterđược tuỳ chỉnh hoặc chứng thực từ hãng thứ 3 cung cấp
- Khi tạo 1 Project MVC5, người dùng được lựa chọn 4 loại security:
No Authentication Ứng dụng không hỗ trợ security
Individual User Accounts Ứng dụng sử dụng tài khoản được quản
lý bởi SQL Server hoặc từ gmail,
Organizational Accounts Ứng dụng sử dụng tài khoản được quản
lý bởi Active Directory hoặc Windows
Azure Directory
Windown Authentication Ứng dụng chạy trên intranet tức sử
Trang 21dụng tài khoản windows để đăng nhập
BẢNG CƠ SỞ LÝ THUYẾT.3 Các loại security trong MVC5
- Mỗi loại security khác nhau sẽ phù hợp với các ứng dụng khác nhau Khi chọnIndividual User Accounts thì ứng dụng chạy trên Internet và sử dụng SQLServer để lưu trữ thành viên hoặc đăng nhập từ các hệ thống khác như Google,Facebook Khi đó người dùng có thể đăng ký, đăng nhập, đổi mật khẩu, đăngxuất với tài khoản cục bộ hoặc từ bên ngoài(Google, Facebook…)
- Code của AccountController có 2 sự khác biệt
o Annotation [Authorize] được sử dụng để làm cho mọi action trongcontroller không thẻ truy xuất khi chưa đăng nhập ngoại trừ action đóđược đánh dấu với annotion [AllowAnontmous]
o o Thuộc tính UserManager được tạo ra trong constructor để quản lý cácthành viên Các trang chức năng security đăng ký, đăng nhập và đổi mậtkhẩu được thực hiện nhờ thuộc tính này
2.3 GIỚI THIỆU ENTITY FRAMEWORK
2.3.1 Tổng quan
Entity Framework (EF) là một framework ánh xạ quan hệ đối tượng (ORM)dành cho ADO.NET, là 1 phần của NET Framework EF cho phép các nhà phát triểnWeb tương tác với dữ liệu quan hệ theo phương pháp hướng đối tượng đặc trưng Lợiích lớn nhất của EF là giúp lập trình viên giảm thiểu việc lập trình mã nguồn cần thiết
để truy cập và tương tác với cơ sở dữ liệu EF được Microsoft hỗ trợ phát triển lâu dài
và bền vững, vì vậy EF là 1 framework mạnh nhất hiện nay để phát triển ứng dụngWeb với sự hỗ trợ đông đảo của các nhà phát triển Web Kiến trúc của EntityFramework được minh họa như sau:
Trang 22Hình CƠ SỞ LÝ THUYẾT.2 Mô hình kiến trúc Entity Framework
2.3.2 Tầng Application
Application (ứng dụng) là tầng chứa giao diện trang Web (HTML, CSS,Javascript, hình ảnh, …) và các đoạn mã nguồn (C#, VB) để tương tác dữ liệu với cáctầng khác trong mô hình thông qua Object Services
Đây là các class tự động sinh ra tương ứng với mô hình dữ liệu Các class nàybao gồm:
- ObjectContext đại diện cho một database ObjectContext có chức năng quản
lý các kết nối, định nghĩa mô hình dữ liệu với metadata và thao tác với
Trang 23database Lớp này cũng có thể thêm vào các phương thức đại diện cho cácstored procedure trong database.
- ObjectSet<TEntity> là một một tập hợp các entity Mỗi đối tượng này tương
ứng với một table Có thể lấy được các đối tượng này thông qua các propertytương ứng của ObjectContext
- EntityObject, ComplexObject là các lớp tương ứng cho một dòng dữ liệu của
table trong database Khác biệt chính giữa hai loại này là ComplexObjectkhông chứa primary key
- EntityCollection<TEntity> và EntityReference<TEntity>: là các đối
tượng thể hiện mối quan hệ (relationship) giữa hai entity class Mỗi đối tượngnày có thể được truy xuất thông qua các property của entity class
- Sự ánh xạ tương đương được thể hiện bảng sau:
BẢNG CƠ SỞ LÝ THUYẾT.4 Bảng ánh xạ tương đương giữa các đối tượng trong database và EF
2.3.4 Tầng EntityClient Data Provider
EntityClient là một data provider mới của ADO.NET dùng để truy xuất đếndatabase Được xây dựng bên trên các ADO.NET data provider cơ bản, EntityClientkhông truy xuất trực tiếp dữ liệu mà thông qua các data provider khác dựa vào cácthông tin dữ liệu từ Entity Data Model
EntityClient cũng bao gồm các lớp giống như các ADO.NET data provider khác
và tên lớp được đặt với tiền tố Entity Ví dụ bạn có thể tạo kết nối bằngEntityConnection, tạo các câu truy vấn bằng EntityCommand và đọc kết quả bằngEntityDataReader
Một điểm khác biệt với các data provider khác là EntityClient sử dụng EntitySQL để truy vấn dữ liệu Các lệnh Entity SQL sẽ được chuyển thành một cấu trúc lệnhdạng cây (command tree) và chuyển xuống cho các data provider khác
Trang 242.3.5 Tầng ADO.NET Data Providers
Đây là tầng thấp nhấp để dịch các truy vấn L2E (LINQ to Entity) thông qua câylệnh thành các câu lệnh SQL và thực thi các câu lệnh trong hệ thống DBMS (databasemanagement system – hệ quản lý dữ liệu) nào đó Tầng này kết với database sử dụngADO.NET
EntityClient là một data provider mới của ADO.NET dùng để truy xuất đếndatabase Được xây dựng bên trên các ADO.NET data provider cơ bản, EntityClientkhông truy xuất trực tiếp dữ liệu mà thông qua các data provider khác dựa vào cácthông tin dữ liệu từ Entity Data Model
EntityClient cũng bao gồm các lớp giống như các ADO.NET data provider khác
và tên lớp được đặt với tiền tố Entity Ví dụ bạn có thể tạo kết nối bằngEntityConnection, tạo các câu truy vấn bằng EntityCommand và đọc kết quả bằngEntityDataReader
Một điểm khác biệt với các data provider khác là EntityClient sử dụng EntitySQL để truy vấn dữ liệu Các lệnh Entity SQL sẽ được chuyển thành một cấu trúc lệnhdạng cây (command tree) và chuyển xuống cho các data provider khác
2.3.6 Tầng EDM (Entity Data Model)
Entity Data Model (EDM) là mô hình dữ liệu được mô tả thông qua các ngônngữ theo chuẩn XML EDM được chia làm 3 lớp là: Conceptual, Mapping và Logical.Mỗi lớp này được định nghĩa bởi ngôn ngữ riêng theo định dạng XML:
- Conceptual – Conceptual Schema Definition Language (CSDL): là ngôn ngữđịnh nghĩa các entity, relationship, hàm trong tập tin với phần mở rộng csdl
Có thể tạo được các entity class (object layer)
- Mapping – Mapping specification language (MSL): định nghĩa các ánh xạ giữalớp conceptual và logical, nội dung này được lưu trong tập tin msl
- Logical – Store Schema Definition Language (SSDL): định nghĩa mô hình lưutrữ của dữ liệu, lưu trữ trong tập tin ssdl
Trang 25-Hình CƠ SỞ LÝ THUYẾT.3 Lưu đồ Entity Mapping Model
2.3.7 Cách sử dụng trong Entity Framework
Là thành phần trung gian giữa ứng dụng và database, Entity Data Model (EDM)giúp tạo liên kết và mô tả giữa nguồn dữ liệu vật lý và các đối tượng bussiness (hayobject layer) trong ứng dụng Dựa vào sự lựa chọn thành phần nào sẽ được tạo ratrước, một ứng dụng Entity Framework (EF) có thể sử dụng 1 trong 3 cách tiếp cận:Database First, Model First và Code First
Các sơ đồ dưới đây minh hoạt mối quan hệ và thứ tự tạo ra giữa các thành phần
dữ liệu trong ứng dụng của Entity Framework Phần Model tương ứng với tậptin edmx, Code tương ứng với tập tin cs (hoặc vb nếu bạn dùng VB.NET)
Trang 26Hình CƠ SỞ LÝ THUYẾT.4 Sơ đồ minh họa mối quan hệ các thành phần trong EF
2.4 TỔNG QUAN VỀ SQL SERVER
Là một hệ quản trị cơ sở dữ liệu do Microsoft phát triển SQL Server là một hệquản trị cơ sở dữ liệu quan hệ mạng máy tính hoạt động theo mô hình khách chủ chophép đồng thời cùng lúc có nhiều người dùng truy xuất đến dữ liệu, quản lý việc truynhập hợp lệ và các quyền hạn của từng người dùng trên mạng
2.5 TỔNG QUAN VỀ NGÔN NGỮ GIAO DIỆN
2.5.1 HTML và CSHTML
HTML viết tắt của HyperText Markup Language (tạm dịch Ngôn ngữ Đánh dấuSiêu văn bản) là ngôn ngữ đánh dấu được thiết kế để tạo nên các trang web với cácmẫu thông tin trình bày trên World Wide Web Cùng với CSS và JavaScript, HTMLtạo thành bộ ba nền tảng kỹ thuật cho World Wide Web Hiện nay, HTML đang đượcphát triển tiếp với phiên bản HTML5 hứa hẹn mang lại diện mạo mới cho trang web.Trong view của ASP.NET, sẽ sử dụng các thẻ HTML đồng thời có thể kếthợp với các khối lệnh ngôn ngữ C# bằng cách khai báo @{…} hoặc @ để tạo ra mộtview template (file cshtml)
Trang 272.5.2 Razor View Engine
2.5.2.1 Giới thiệu
Như chúng ta đã biết, từ phiên bản Asp.net MVC 3, Microsoft lựa chọn ViewEngine mặc định là Razor View Engine, khi View được yêu cầu bởi Http Request thìRazor View Engine thực hiện biên dịch trang View này
Khi sử dụng Razor View Engine, lập trình viên không cần phải học một ngônngữ lập trình mới, mà thay vào đó Razor cung cấp các mẫu nhằm kết hợp giữa cú phápcủa ngôn ngữ đánh dấu siêu văn bản (HTML) và ngôn ngữ lập trình như C#, VB ở nộidung của các trang View Với các lập trình viên đã quen với các ngôn ngữ C# hoặc VBthì học và làm quen với Razor View Engine là rất đơn giản
2.5.2.2 Cú pháp Razor
Để thông dịch các đoạn mã được viết bởi các ngôn ngữ như C#, VB trong các trangView, Razor đưa ra những quy tắc nhằm để xác định các đoạn mã đó được biên dịch ởphía Server (server-side code) và các đoạn mã đánh dấu (markup code) được thựchiện biên dịch ở phía client (như javascript, css, html, …), Razor sử dụng ký tự @nhằm phân biệt giữa server-side code và markup code
Khi tạo ra các Razor view chúng ta cần chú ý như sau :
- Sử dụng @{ code } để viết một khối mã lệnh
- Để viết một biểu thức inline (Viết biểu thức Razor trực tiếp trong đoạn mã củamarkup code, lập trình viên chỉ cần sử dụng @
- Sử dụng từ khóa var để khai báo biến
- Sử dụng ; để kết thúc một câu lệnh
- Với các Razor view sử dụng ngôn ngữ C#, các file có đuôi mở rộng là cshtml
- Với các Razor view sử dụng ngôn ngữ VB, các file có đuôi mở rộng là vbhtml
2.5.2.3 Khối mã lệnh
Razor hỗ trợ lập trình viên viết các khối mã lệnh tại các View Một khối mãlệnh Raror là một phần của View, và nó được viết bằng các ngôn ngữ C# hoặc VB
Cú pháp @{<code>}
Trang 28Mô tả
- code : là các đoạn mã code được viết bởi ngôn ngữ C# hoặc VB và được biêndịch ở phía Server
Hình CƠ SỞ LÝ THUYẾT.5 Minh họa khối mã lệnh Razor View
2.5.3 CSS (Cascading Style Sheets)
CSS được viết tắt của cụm từ Cascading Style Sheets, hiểu đơn giản nó là tổnghợp các chuỗi dạng text, mỗi câu lệnh của CSS dùng để định dạng một phần tử củaHTML về màu sắc, kích thước, font chữ Nhờ có CSS mà giao diện của web, nộidung trên web trở nên rõ ràng hơn, hấp dẫn hơn với người đọc
Trang 29Hình CƠ SỞ LÝ THUYẾT.6 Vai trò CSS với Website
2.5.4 Bootstrap
Bootstrap hiện đang là Framework hỗ trợ tốt nhất và phổ biến nhất trong việcphát triển các dự án về giao diện website cho cả thiết bị di động và máy tính bao gồmHTML, CSS và Java script Bootstrap phát triển qua nhiều phiên bản, phiên bản mớinhất lúc mình thực hiện tutorials là bản 3.3.2
Bootstrap được sử dụng rộng rải bởi lợi ích to lớn mà nó mang lại như giao diệnwebsite tương thích với các thiết bị smartphone, tablet và máy tính thông thường vì cóthể tự động co giãn kích thước Bootstrap được xây dựng với các module hỗ trợ sẵnnên rất dễ dàng tìm hiểu, xây dựng giao diện một cách nhanh chóng…
2.5.5 JavaScript, JQuery và Ajax
2.5.5.1 JavaScript
- JavaScript (có phần mở rộng js) là một ngôn ngữ lập trình dạng kịch bản dựatrên đối tượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ được sửdụng rộng rãi trên các trang web, nhưng cũng được dùng để tạo khả năng viếtscript sử dụng đối tượng có sẵn trong các ứng dụng Giống Java, JavaScript có
cú pháp tương tự C, nhưng gần giống với Self hơn Java Hiện nay, có rất nhiềuframework, libraries được viết bằng ngôn ngữ JavaScript:
Trang 30o jQuery: Một thư viện mạnh mẽ và thông dụng.
o AngularJS: Một thư viện xây dựng ứng dụng Single Page.
o NodeJS: Một thư viện được phát triển phía Server dùng để xây dựng
ứng dụng realtime
o Firebase: Một nền tảng di động dùng lưu trữ dữ liệu theo thời gian thực.
2.5.5.2 JQuery
- jQuery là một thư viện kiểu mới của JavaScript, được tạo bởi John Resig vào
năm 2006 với một phương châm tuyệt vời: Write less, do more.
- jQuery làm đơn giản hóa việc truyền tải HTML, xử lý sự kiện, tạo hiệu ứngđộng và tương tác Ajax Với jQuery, khái niệm Rapid Web Development đãkhông còn quá xa lạ
- jQuery là một bộ công cụ tiện ích JavaScript làm đơn giản hóa các tác vụ đadạng với việc viết ít code hơn Dưới đây liệt kê một số tính năng tối quan trọngđược hỗ trợ bởi jQuery:
o Thao tác DOM − jQuery giúp dễ dàng lựa chọn các phần tử DOM để
traverse một cách dễ dàng như sử dụng CSS, và chỉnh sửa nội dung củachúng bởi sử dụng phương tiện Selector mã nguồn mở, mà được gọi làSizzle
o Xử lý sự kiện − jQuery giúp tương tác với người dùng tốt hơn bằng
việc xử lý các sự kiện đa dạng mà không làm cho HTML code rối tunglên với các Event Handler
o Hỗ trợ AJAX − jQuery giúp bạn rất nhiều để phát triển một site giàu
tính năng và phản hồi tốt bởi sử dụng công nghệ AJAX
o Hiệu ứng − jQuery đi kèm với rất nhiều các hiệu ứng đa dạng và đẹp
mắt mà bạn có thể sử dụng trong các Website của mình
o Được hỗ trợ hầu hết bởi các trình duyệt hiện đại − jQuery được hỗ
trợ hầu hết bởi các trình duyệt hiện đại, và làm việc tốt trên IE 6.0+, FF2.0+, Safari 3.0+, Chrome và Opera 9.0+
o Cập nhật và hỗ trợ các công nghệ mới nhất − jQuery hỗ trợ CSS3
Selector và cú pháp XPath cơ bản
Trang 312.5.5.3 Ajax
- AJAX, là viết tắt của Asynchronous JavaScript and XML, (tạm dịch làJavaScript và XML không đồng bộ), là một kỹ thuật mới để tạo các ứng dụngweb giàu tính tương tác, nhanh hơn và mượt mà hơn với sự giúp đỡ của XML,HTML, CSS và JavaScript
- AJAX không phải là ngôn ngữ lập trình mới Tên AJAX ở đây không có nghĩa
là bạn phải học XML trước khi cần học AJAX Điều này là không cần thiết
- AJAX cho phép các trang web được cập nhật một cách không đồng bộ bằngcách trao đổi các lượng dữ liệu nhỏ với Server Tức là AJAX giúp cập nhật cácphần nhỏ trong trang mà không cần tải lại toàn bộ trang Nếu đến đây bạn chưahiểu thì các dòng tiếp theo đây sẽ giúp bạn hiểu cách AJAX làm việc hơn
Trang 32CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
3.1 MÔ HÌNH CƠ SỞ DỮ LIỆU
Hình TỔNG QUAN.7.Mô hình cơ sở dữ liệu
Trang 333.2 TỔ CHỨC BẢNG DỮ LIỆU
3.2.1 Bảng dữ liệu Application
1 IdEmployee uniqueidentifier Not Null Mã nhân viên
3 Submission date Ngày nhận việc
BẢNG THIẾT KẾ HỆ THỐNG.5 Bảng dữ liệu Application
3.2.2 Bảng dữ liệu CategoryJob
1 Id uniqueidentifier Not Null Mã loại việc
2 Name nvarchar(150) Tên loại việc
BẢNG THIẾT KẾ HỆ THỐNG.6 Bảng dữ liệu CategoryJob
3.2.3 Bảng dữ liệu Company
STT Tên cột Kiểu dữ liệu Allow Null Diễn giải
1 Id uniqueidentifier Not Null Mã loại việc
2 Name nvarchar(150) Tên nhà tuyển dụng
3 LoginName varchar(100) Tên đăng nhập
4 PassWord varchar(100) Mật khẩu
5 Picture nvarchar(250) Hình ảnh
6 Email varchar(150) Email
7 Address nvarchar(200) Địa chỉ
9 Phone char(15) Số điện thoại
11 WebSite nchar(50) Địa chỉ website
12 ContactName nvarchar(50) Tên người đại diện
13 ContactPhone char(15) Số điện thoại người
đại diện
Trang 3414 ContactEmail varchar(150) Email người đại diện
15 ContactAgency nvarchar(100) Liên hệ cơ quan
17 CreatedDate date Ngày tạo
18 MemberID uniqueidentifier Mã loại thành viên
BẢNG THIẾT KẾ HỆ THỐNG.7 Bảng dữ liệu Company
3.2.4 Bảng dữ liệu Degree
1 Id uniqueidentifier Not Null Mã trình độ
2 Name nvarchar(150) Tên trình độ
BẢNG THIẾT KẾ HỆ THỐNG.8 Bảng dữ liệu Degree
3.2.5 Bảng dữ liệu Employee
1 Id uniqueidentifier Not Null Mã ứng viên
2 Name nvarchar(150) Tên ứng viên
3 Email varchar(150) Email
4 LoginName varchar(100) Tên đăng nhập
5 PassWord varchar(100) Mật khẩu
6 Picture nvarchar(150) Hình ảnh
7 DateOfBirth date Ngày sinh
8 Address nvarchar(200) Địa chỉ
9 IdGender uniqueidentifier Mã giới tính
10 Description ntext Mô tả
11 CurriculumVitae nvarchar(150) File,cv bằng cấp
12 IdProvince uniqueidentifier Mã tỉnh thành
13 Favorists ntext Sở thích
15 CreatedDate date Ngày tạo
17 MemberID uniqueidentifier Mã thành viên
Trang 3518 Phone char(15) Số điện thoại
BẢNG THIẾT KẾ HỆ THỐNG.9 Bảng dữ liệu Employee
3.2.6 Bảng dữ liệu Experience
1 Id uniqueidentifier Not Null Mã kinh nghiệm
2 Name nvarchar(150) Tên kinh nghiêm
BẢNG THIẾT KẾ HỆ THỐNG.10 Bảng dữ liệu Experience
3.2.7 Bảng dữ liệu Formality
1 Id uniqueidentifier Not Null Mã hình thức làm
1 Id uniqueidentifier Not Null Mã công việc
2 Title nvarchar(150) Tiêu đề
3 Name nvarchar(250) Tên công việc
4 NumberOfRecruitment int Số lượng nhân
viên yêu cầu
5 IdSalary uniqueidentifier Mã lương
6 IdExp uniqueidentifier Mã kinh
nghiệm
7 IdDegree uniqueidentifier Mã trình độ
8 IdProvince uniqueidentifier Mã tỉnh thành
9 IdCategory uniqueidentifier Mã loại việc
10 IdGender uniqueidentifier Mã giới tính
11 IdType uniqueidentifier Mã loại việc
12 IdFormality uniqueidentifier Mã hình thức
Trang 3616 Deadline datetime Hạn công việc
17 CreateDate datetime Ngày đăng
việc
19 IdCompany uniqueidentifier Not Null Mã nhà tuyển
1 Id uniqueidentifier Not Null Mã thành viên
2 LoginName varchar(50) Tên đăng nhập
3 Password varchar(50) Mật khẩu
4 Name nvarchar(50) Tên thành viên
BẢNG THIẾT KẾ HỆ THỐNG.13 Bảng dữ liệu Member
3.2.10 Bảng dữ liệu Member_Permission
3 Note nvarchar(50) Ghi chú
BẢNG THIẾT KẾ HỆ THỐNG.14 Bảng dữ liệu Member_Permission
Trang 373.2.11 Bảng dữ liệu Permission
2 PerName nvarchar(30) Tên chức năng
BẢNG THIẾT KẾ HỆ THỐNG.15 Bảng dữ liệu Permission
3.2.12 Bảng dữ liệu Province
1 Id uniqueidentifier Not Null Mã tỉnh thành
2 Name nvarchar(150) Tên tỉnh thành
BẢNG THIẾT KẾ HỆ THỐNG.16 Bảng dữ liệu Province
3.2.13 Bảng dữ liệu Salary
1 Id uniqueidentifier Not Null Mã mức lương
2 Name nvarchar(150) Tên mức lương
BẢNG THIẾT KẾ HỆ THỐNG.17 Bảng dữ liệu Salary
3.2.14 Bảng giữ liệu Gender
1 Id uniqueidentifier Not Null Mã giới tính
2 Name nvarchar(30) Tên giới tính
BẢNG THIẾT KẾ HỆ THỐNG.18 Bảng giữ liệu Gender
3.2.15 Bảng dữ liệu Type
1 Id uniqueidentifier Not Null Mã giới tính
2 Name nvarchar(100) Tên giới tính
BẢNG THIẾT KẾ HỆ THỐNG.19 Bảng dữ liệu Type
3.2.16 Bảng dữ liệu TypeOfMember