DANH MỤC CHỮ VIẾT TẮT ADO.NET ActiveX Data Object ASP Active Server Pages Kịch bản kích hoạt phía server CLI Common Language Infrastructure Cơ sở hạ tầng ngôn ngữ chung CLR Common Langua
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC TÂY BẮC
Trang 2LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới thầy giáo: Th.S Giang Thành Trung đã tận tình giúp đỡ, hướng dẫn và tạo điều kiện cho tôi trong
quá trình thực hiện khoá luận này
Tôi cũng xin gửi lời cảm ơn chân thành tới các thầy giáo, cô giáo trong khoa Toán-Lý-Tin, phòng Đào tạo Đại học, Trung tâm Thông tin - Thư viện Trường Đại học Tây Bắc đã tạo điều kiện thuận lợi nhất cho tôi trong suốt quá trình thực hiện khoá luận
Đồng thời tôi cũng xin gửi lời cảm ơn chân thành tới các bạn sinh viên trong tập thể lớp K55 - Đại học Công nghệ Thông tin đã động viên, đóng góp ý kiến, giúp đỡ tôi thực hiện và hoàn thành khoá luận
Tôi rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo và các bạn sinh viên để khoá luận của tôi thêm hoàn thiện
Tôi xin chân thành cảm ơn!
Sơn La, tháng 5 năm 2018
NGƯỜI THỰC HIỆN KHOÁ LUẬN
Hông Sả Khon Sí Mương May
Trang 3MỤC LỤC
CHƯƠNG 1 SQL SERVER VÀ C# 1
1.1 .NET Framework 1
1.1.1 Sự ra đời của NET Framework 1
1.1.2 Các thành phần cơ bản của NET Framework 1
1.1.3 Những điểm đặc trưng của NET Framework 2
1.1.4 Mục đích thiết kế của NET Framework 3
1.1.5 Những đặc tính của NET Framework 5
1.1.6 Khả năng hỗ trợ phát triển các ứng dụng cho doanh nghiệp 6
1.1.7 Cải thiện các thao tác 7
1.2 Ngôn ngữ C# 8
1.2.1 Giới thiệu về C# 8
1.2.2 Đặc trưng của C# 8
1.3 SQL Server 9
1.3.1 Giới thiệu hệ quản trị SQL Server 9
1.3.2 Các thành phần cơ bản trong SQL Server 10
1.3.3 Lịch sử ra đời SQL Server và các phiên bản 13
1.3.4 Các đặc điểm của SQL Server 13
CHƯƠNG 2 THIẾT KẾ PHẦN MỀM QUẢN LÝ BÁN HÀNG 15
2.1 Phân tích bài toán quản lý bán hàng 15
2.2 Đề xuất mô hình 15
2.2.1 Đăng nhập, đăng xuất 16
2.2.2 Quản lý danh mục (Category) 16
2.2.3 Quản lý hàng hóa 18
2.2.4 Quản lý công nợ 19
2.2.5 Tồn kho 20
2.2.6 Lập báo cáo 20
Trang 42.3 Cơ sở dữ liệu 20
2.4 Thiết kế giao diện 33
2.4.1 Đăng nhập (Log in) 33
2.4.2 Ngôn ngữ (Language) 34
2.4.3 Bán hàng (Sale) 34
2.4.4 Nhập hàng (Merchandise) 38
2.4.5 Quản lý công nợ (Debt) 40
2.4.6 Quản lý danh mục (Category) 42
2.4.7 Báo cáo (Report) 58
CHƯƠNG 3 XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG 62
3.1 Nền tảng xây dựng 62
3.1.1 Mô hình 3 lớp 62
3.1.2 Entity Framework 63
3.1.3 DevExpress 63
3.2 Một số chức năng của phần mềm 64
3.2.1 Đăng nhập (Log in) 64
3.2.2 Ngôn ngữ (Language) 64
3.2.3 Bán hàng (Sale) 65
3.2.4 Nhập hàng (Merchandise) 68
3.2.5 Công nợ của khách hàng (Debt) 70
3.2.6 Nhân viên (Employee) 71
3.2.7 Hàng hóa (Product) 72
3.2.8 Báo cáo (Report) 73
KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Microsoft NET 1
Hình 1.2 Mục đích thiết kế NET Framework 3
Hình 1.3 Cấu trúc của phần mềm C# 8
Hình 1.4 SQL Server 2014 10
Hình 1.5 Các thành phần cơ bản trong SQL Server 11
Hình 2.1 Phân cấp chức năng của phần mềm 16
Hình 2.2 Quản lý danh mục 16
Hình 2.3 Quản lý hàng hóa 18
Hình 2.4 Quản lý công nợ 19
Hình 2.5 Lập báo cáo 20
Hình 2 6 Cơ sở dữ liệu 1 21
Hình 2.7 Cơ sở dữ liệu 2 22
Hình 2.8 Form đăng nhập 33
Hình 2.9 Form ngôn ngữ 34
Hình 2.10 Form bán hàng 35
Hình 2.11 Form thanh toán 35
Hình 2.12 Form hóa đơn bán hàng 36
Hình 2.13 Form danh sách hóa đơn bán hàng 37
Hình 2.14 Form chi tiết hóa đơn bán hàng 37
Hình 2.15 Form nhập hàng 38
Hình 2.16 Form hóa đơn nhập hàng 38
Hình 2.17 Form danh sách hóa đơn nhập hàng 39
Hình 2.18 Form chi tiết hóa đơn nhập hàng 39
Hình 2.19 Form công nợ của khách hàng 40
Hình 2.20 Form trả nợ của khách hàng 41
Hình 2.21 Form hóa đơn trả nợ của khách hàng 41
Trang 6Hình 2.22 Form danh sách nhóm hàng hóa 42
Hình 2.23 Form thêm/cập nhật nhóm hàng hóa 42
Hình 2.24 Form danh sách hàng hóa 43
Hình 2.25 Form thêm/cập nhật hàng hóa 43
Hình 2.26 Form danh sách nhóm nhân viên 44
Hình 2.27 Form thêm/cập nhật nhóm nhân viên 44
Hình 2.28 Form danh sách nhân viên 45
Hình 2.29 Form thêm/cập nhật nhân viên 45
Hình 2.30 Form danh sách nhóm nhà cung cấp 46
Hình 2.31 Form thêm/cập nhật nhóm nhà cung cấp 46
Hình 2.32 Form danh sách nhà cung cấp 47
Hình 2.33 Form thêm/cập nhật nhà cung cấp 47
Hình 2.34 Form danh sách nhóm khách hàng 48
Hình 2.35 Form thêm/cập nhật nhóm khách hàng 48
Hình 2.36 Form danh sách khách hàng 49
Hình 2.37 Form thêm/cập nhật khách hàng 49
Hình 2.38 Form danh sách chỗ để hàng 50
Hình 2.39 Form thêm/cập nhật chỗ để hàng 50
Hình 2.40 Form danh sách đơn vị tính 51
Hình 2.41 Form thêm/cập nhật đơn vị tính 51
Hình 2.42 Form trả lương nhân viên 52
Hình 2.43 Form thêm/cập nhật trả lương nhân viên 52
Hình 2.44 Form danh sách hãng sản xuất 53
Hình 2.45 Form thêm/cập nhật hãng sản xuất 53
Hình 2.46 Form danh sách quyền 54
Hình 2.47 Form thêm/cập nhật quyền 54
Hình 2.48 Form chức năng 55
Trang 7Hình 2.49 Form phân quyền 56
Hình 2.50 Form kiểm kho 56
Hình 2.51 Form danh sách ca 57
Hình 2.52 Form thêm/cập nhật ca 57
Hình 2.53 Form giao ca 58
Hình 2.54 Form báo cáo hóa đơn bán hàng 59
Hình 2.55 Form báo cáo hóa đơn nhập hàng 59
Hình 2.56 Form báo cáo công nợ của khách hàng 60
Hình 2.57 Form báo cáo thu tiền 60
Hình 2.58 Form báo cáo chi tiền 61
Hình 2.59 Form báo cáo tổng thu/chi 61
Hình 3.1 Mô hình 3 lớp 62
Hình 3.2 Đăng nhập 64
Hình 3.3 Ngôn ngữ phần mềm 65
Hình 3.4 Trang chủ bán hàng 66
Hình 3.5 Bảng nhập tiền thanh toán 66
Hình 3.6 Hóa đơn bán hàng 67
Hình 3.7 Danh sách hóa đơn bán hàng 67
Hình 3.8 Chi tiết hóa đơn bán hàng 68
Hình 3.9 Nhập hàng 68
Hình 3.10 Hóa đơn nhập hàng 69
Hình 3.11 Danh sách hóa đơn nhập hàng 69
Hình 3.12 Chi tiết hóa đơn nhập hàng 70
Hình 3.13 Công nợ của khách hàng 70
Hình 3.14 Trả nợ của khách hàng 71
Hình 3.15 Danh sách nhân viên 71
Hình 3.16 Thêm/cập nhật nhân viên 72
Trang 8Hình 3.17 Danh sách hàng hóa 72
Hình 3.18 Thêm/cập nhật hàng hóa 73
Hình 3.19 Báo cáo hóa đơn bán hàng 74
Hình 3.20 Báo cáo công nợ của khách hàng 74
Hình 3.21 Báo cáo hóa đơn nhập hàng 75
Trang 9DANH MỤC CHỮ VIẾT TẮT
ADO.NET ActiveX Data Object
ASP Active Server Pages Kịch bản kích hoạt phía server
CLI Common Language Infrastructure Cơ sở hạ tầng ngôn ngữ chung CLR Common Language Runtime Bộ thực thi ngôn ngữ chung
COM Component Object Model Mô hình Đối tượng Thành
phần
IDE Integrated Development
MSIL Microsoft Intermediate Language Ngôn ngữ trung gian của
Microsoft
MSMQ Microsoft Message Queuing
Services
Dịch vụ xếp hàng thông báo của Microsoft
MTS Microsoft Transaction Services Các dịch vụ giao dịch của
Microsoft OOP Object Oriented Programming Lập trình hướng đối tượng
RDBMS Relation Database Management
System
Hệ thống quản trị cơ sở dữ liệu quan hệ
SOAP Simple Object Access Protocol Giao thức truy cập đối tượng
đơn giản SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc WPF Windows Presentation Foundation
WSDL Web Services Description Language Ngôn ngữ mô tả các dịch vụ
Web XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng
Trang 101
CHƯƠNG 1 SQL SERVER VÀ C#
1.1 .NET Framework
1.1.1 Sự ra đời của NET Framework
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư viện lập trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hàng Windows Nó cung cấp những giải pháp thiết yếu cho những yêu cầu thông thường của các phần mềm điện toán như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng Web, các giải thuật số học và giao tiếp mạng Ngoài ra, NET Framework quản lý việc thực thi các phần mềm được viết dựa trên NET Framework do đó người dùng cần phải cài NET Framework để có thể chạy các phần mềm được viết trên NET [3]
Hình 1.1 Microsoft NET
1.1.2 Các thành phần cơ bản của NET Framework
a Common Language Runtime (CLR)
CLR - Bộ thực thi ngôn ngữ chung là trung tâm của NET Framework Đây là nơi
để chạy các tính nǎng của NET Trong NET tất cả mọi ngôn ngữ lập trình đều được biên dịch ra Microsoft Intermediate Language (IL) Do bắt buộc mọi ngôn ngữ đều phải dùng cùng các loại kiểu dữ liệu (gọi là Common Type System) nên CLR có thể kiểm soát mọi giao diện, gọi giữa các thành phần và cho phép các ngôn ngữ có thể tích hợp với nhau một cách thông suốt
Trang 112
b .NET Framework Class Library
Với phiên bản cấu thành Microsoft Active Server hay còn gọi là Microsoft ASP ở một số phiên bản hay tài liệu đều ghi là được cấu từ 3 thành phần cơ bản là: CLR, BCL
và ASP Nhưng về cơ bản ASP.NET cũng là xây dựng từ bộ thư viện lớp cơ sở lên coi như là chỉ có 2 thành phần chính là: CLR và BCL
Bộ biên dịch CLR: là một thành phần trung của NET Framework với nhiệm vụ thực hiện biên dịch các phần mềm
- Các dịch vụ mà CLR cung cấp cho ta như sau:
Nạp và thực thi phần mềm
Phân chia vùng nhớ của ứng dụng
Xác minh tính an toàn của kiểu dữ liệu
Cung cấp metadata
Quản lý bộ nhớ tự động (Automatic Garbage Collection)
Thực thi bảo mật
Quản lý lỗi và ngoài lệ
Hỗ trợ các công việc như Debug hoặc Profile ứng dụng
Liên kết với các hệ thống khác
Các hoạt động của bộ biên dịch: là các phần mềm hay các đoạn văn mã được viết bằng NET sẽ được biên dịch thành ra mã trung gian MSIL (Microsoft Intermediate Language) Khi thực thi phần mềm một lần nữa CLR sẽ biên dịch các mã trung gian MSIL này thành mã máy để thực thi CLR là gần giống như một Assemply nhưng không phải là Assemply
BCL: là một bộ thư viện liên kết động, cung cấp một thư viện lập trình cho ứng dụng cơ sở dữ liệu, Web…
- ADO.NET và XML
- ASP.NET
- Web Service
- Windows Form
1.1.3 Những điểm đặc trưng của NET Framework
.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng dụng và dịch vụ Web, Windows Nó cung cấp một môi trường đa ngôn ngữ, dựa trên
Trang 123
nền các chuẩn với hiệu nâng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng và dịch vụ thế hệ kế tiếp và giải quyết những thách thức của việc triển khai và vận hành các ứng dụng trên quy mô Internet Thực tế NET Framework là kết quả của hai
1.1.4 Mục đích thiết kế của NET Framework
Hình 1.2 Mục đích thiết kế NET Framework
.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các dịch vụ và ứng dụng Web XML.Tầm nhìn của nền tảng NET Framework kết hợp một
mô hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của Internet Để đạt được tầm nhìn này, việc thiết kế NET Framework nhằm một số mục đích:
- Sự hợp nhất thông qua các chuẩn Internet công cộng: Để giao tiếp với những đối tác kinh doanh, những khách hàng phụ thuộc vào các khu vực theo vị trí địa lý, thậm trí
cả những ứng dụng cho tương lai, những giải pháp phát triển cần được đề nghị hỗ trợ
Trang 13- Hỗ trợ nhiều ngôn ngữ: Các nhà phát triển sử dụng những ngôn ngữ khác nhau
do mỗi ngôn ngữ riêng có những ưu thế đặc thù: một số ngôn ngữ đặc biệt thích hợp với thao tác toán học; một số khác lại đa dạng ở các hàm tính toán tài chính … NET Framework cho phép các ứng dụng được viết trong nhiều ngôn ngữ lập trình khác nhau
và chúng có khả năng tích hợp với nhau một cách chặt chẽ Ngoài ra, với NET Framework, các công ty còn có thể tận dụng những lợi thế của kỹ năng phát triển sẵn có
mà không cần phải đào tạo lại và cho phép những người phát triển sử dụng ngôn ngữ
mà họ ưa thích
- Nâng cao năng suất cho các nhà phát triển: Với số lượng các nhà phát triển ứng dụng không nhiều nên mỗi giờ làm việc họ phải cho ra kết quả công việc cụ thể Các nhóm phát triển với NET Framework có thể loại bỏ những công việc lập trình không cần thiết và tập trung vào viết các logic doanh nghiệp Chẳng hạn như NET Framework có ưu điểm tiết kiệm thời gian như thực hiện các giao dịch tự động và dễ sử dụng, quản lý bộ nhớ một cách tự động và có chứa một tập các đối tượng điều khiển đa dạng bao hàm nhiều tác vụ phát triển chung
- Bảo vệ những sự đầu tư thông qua việc bảo mật đã cải tiến: Một trong những vấn
đề liên quan lớn nhất đến Internet hiện nay là bảo mật Kiến trúc bảo mật của NET Framework được thiết kế từ dưới lên để đảm bảo các ứng dụng và dữ liệu được bảo vệ thông qua một mô hình bảo mật dựa trên bằng chứng (Evidence Based) và tinh vi
- Tận dụng những dịch vụ của hệ điều hành: Windows cung cấp một số lượng đa dạng các dịch vụ có sẵn với bất kỳ nền tảng nào; như truy cập dữ liệu một cách toàn diện, bảo mật tích hợp, các giao diện người dùng tương tác, mô hình đối tượng thành phần đáng tin cậy và các giám sát quá trình giao dịch NET Framework đã tận dụng lợi thế đa đạng và phong phú này để đưa ra cho mọi người theo cách dễ sử dụng nhật
Trang 145
1.1.5 Những đặc tính của NET Framework
- Hỗ trợ các chuẩn dịch vụ Web XML Việc sử dụng ngôn ngữ đánh dấu mở rộng XML ở khắp mọi nơi XML là một định dạng dữ liệu cho việc trao đổi tài liệu lẫn nhau
có cấu trúc trên Web .NET Framework sử dụng XML ở khắp mọi nơi từ việc mô tả các đối tượng cho đến bảo mật các tập tin cấu hình
- Khả năng vận hành với nhau qua việc hỗ trợ SOAP .NET Framework cho phép những người phát triển đưa ra và sử dụng các dịch vụ Web XML một cách trong suốt (transparently) thông qua SOAP, một văn phạm XML chuẩn tạo khả năng thao tác giữa các phần trong ứng dụng
- Mô tả dễ dàng các dịch vụ Web XML với WSDL .NET Framework tạo ra những
mô tả WSDL cho các dịch vụ Web XML
- Đưa ra những dịch vụ Web với SOAP Discovery SOAP Discovery cung cấp cơ chế bởi những dịch vụ Web XML nào được tìm thấy trên một máy phục vụ Web (Web Server); NET Framework cung cấp một cách thức để công bố các dịch vụ Web XML thông qua SOAP Discovery
- Hỗ trợ UDDI .NET Framework sử dụng UDDI cho phép những dịch vụ Web XML cung cấp cơ chế bởi những dịch vụ trên Web XML nào được tìm thấy trên Internet
- Hiệu suất cho người phát triển
- Tích hợp nhiều ngôn ngữ lập trình .NET Framework cung cấp khả năng tích hợp ngôn ngữ lập trình chéo (Cross Programming Language), chặt chẽ, thúc đẩy năng suất
do sự cho phép người phát triển mở rộng những thành phần một ngôn ngữ lập trình bên trong một ngôn ngữ khác theo cách kế thừa ngôn ngữ chéo, gỡ lỗi và xử lý lỗi
- Versioning tự động Là phần của bản chất tự mô tả của mỗi thành phần và ứng dụng NET Framework ở chỗ mỗi thành phần đó có một tên (Name) duy nhất được lưu giữ bên trong Do các ứng dụng kết các tên duy nhất của các thành phần lại với nhau,
bộ thực hiện (Runtime) của NET Framework có khả năng điều khiển Versioning của những thành phần dùng chung một cách thông minh và làm mất đi cái gọi là “DLL hell”
- Triển khai theo kiểu “No-touch” (Không can thiệp) .NET Framework bao hàm những đặc tính được cải tiến cho việc triển khai các ứng dụng Việc cài đặc một ứng dụng vào trong hệ thống cung đơn giản như việc sao chép nó vào trong một thư mục và cho nó chạy mà không cần đăng ký như Windows Registry
- Quản lý bộ nhớ tự động .NET Framework là một môi trường “gom rác” (Garbage-Collected) Công việc “gom rác” giải phóng các ứng dụng sử dụng các đối tượng NET Framework từ sự cần thiết loại bỏ dứt khoát các đối tượng này và làm giảm
đi những lỗi lập trình chung không đáng có
Trang 156
- Các thành phần tự mô tả Siêu dữ liệu (Metadata) mà mỗi đối tượng trong NET Framework chứa đựng cho phép bộ thực hiện (Runtime) “chất vấn” các đối tượng về những kiểu dữ liệu, chức năng hoạt động… để xác định các đối tượng đã được goi đúng cách chưa hơn là để cho lời gọi xảy ra và nhận lấy thất bại Đặc tính này được gọi là
“Reflection”
- Mô hình điểu khiển giao diện người dùng ASP.NET và các đối tượng điều khiển được cản thiện làm tăng thêm năng suất và hiệu quả do việc “đóng gói” những tương tác phức tạp trong các thành phần (Component) trên máy phục vụ
- Sự tách biệt giữa mã và nội dung cho phép người phát triển và người tạo ra nội dung làm việc song song với nhau do việc lưu giữ nội dung trong một file tách biệt các
mã của ứng dụng
- Tích hợp nền tảng chặt chẽ .NET Framework cho phép những nhà phát triển sử dụng tất cả các ứng dụng Windows và các dịch vụ hiện hữu Với ưu thế đó người phát triển có thể sử dụng mã đang tồn tại trong khi tận dụng những lợi điểm, thế mạnh trong NET Framework
- Viết ít mã hơn Do NET Framework sử dụng thiết kế”thành phần hóa” cao, những nhà phát triển có thể tập trung vào việc viết logic doanh nghiệp hơn là những công việc như quản lý bộ nhớ, quản lý trạng thái hay xác định khả năng của một trình duyệt client
1.1.6 Khả năng hỗ trợ phát triển các ứng dụng cho doanh nghiệp
- Hỗ trợ những chuẩn Internet công cộng Những chuẩn được xem là phần lõi để chuyển giao phần mềm như là một dịch vụ Microsoft trình bày những đặc tả cho ngôn ngữ lập trình C# và cơ sở hạ tầng ngôn ngữ chung CLI và chuyển tới ECMA cho việc chuẩn hóa
- Hỗ trợ dị bộ (Không đồng bộ) .NET Framework tích hợp hai công nghệ dị bộ cho khả năng biến đổi được và tính đáng tin cậy: SOAP và MSMQ
- Hỗ trợ giao dịch Những nhà phát triển ứng dụng có thể thực hiện cả những công việc thao tác NET Framework bên trong của giao dịch có chứa những hoạt động khác như cập nhật cơ sở dữ liệu chẳng hạn NET Framework hỗ trợ các giao dịch thông qua MTS (Microsoft Transaction Services - các dịch vụ giao dịch của Microsoft) và COM+[16] và cung cấp một giao diện XA tương hợp chuẩn
- Biên dịch ASP.NET Làm tăng khả năng thực hiện với việc biên dịch các trang thay vì phải thông dịch chúng
Trang 167
- Giám sát phiên ASP.NET Tự động và khởi động lại làm tăng thêm độ tin cậy qua việc giám sát chạy các ứng dụng ASP.NET và thậm trí dừng và bắt đầu lại quá trình chạy nếu thấy cần thiết
- Truy nhập dữ liệu toàn bộ với ADO.NET .NET Framework có chứa ADO.NET, một giao diện hiệu năng truy nhập tới bất kỳ một cơ sở dữ liệu nào được thiết kế riêng cho kiểu “Ghép nối lỏng” ADO.NET cung cấp các dịch vụ truy cập dữ liệu cho các ứng dụng trên nền Web biến đổi được và các dịch vụ Web XML, bao gồm cả sự hỗ trợ mô hình dữ liệu đang kết nối (Connected) cũng như ngừng kết nối (Disconnected)
1.1.7 Cải thiện các thao tác
- An ninh bảo mật dựa trên nền tảng bằng chứng (Evidence-Based): Hệ thống bảo mật truy cập mã của NET Framework cho phép các nhà phát triển định ra những “giấy phép” được yêu cầu rằng mã của họ cần để hoàn thành hàng hóa Bộ thực thi ngôn ngữ chung (Common Language Runtime) chịu trách nhiệm bảo đảm rằng những “giấy phép” này là phù hợp hay bị loại bỏ, phụ thuộc vào chứng cớ bao gồm nhận diện người dùng, nhận diện mã, mã nào thực sự đang được sử dụng, mã được bắt đầu nguồn từ nơi nào
- Windows Authentication tích hợp .NET Framework cũng tích hợp với Windows Authentication (Chứng thực Windows) Windows Authentication tích hợp trước đây được biết như chứng thực NT LAN Manager và Windows NT Challenge/Response Trong Windows Authentication tích hợp, trình duyệt cố gắng sử dụng những (Giấy) ủy nhiệm của người dùng hiện hành từ một đăng nhập tên miền Nếu những ủy nhiệm này không được chấp nhận thì Windows Authentication tích hợp sẽ nhắc người dùng cho một tên và mật khẩu người dùng thông qua một hộp thoại Khi Windows Authentication tích hợp đang được sử dụng thì mật khẩu người dùng không qua được từ máy khách đến máy phục vụ Nếu một người dùng đã đăng nhập như là một người sử dụng tên mền trên một máy tính cục bộ, người dùng sẽ không bị chúng thực lần nữa khi truy cập một máy tính mạng trong miền đó
- Chứng thực Internet: Người dùng Internet thường cần những cơ chế chứng thực khác nhau Các ứng dụng dùng NET Framework có thể nắm lấy lợi thế và được cấu hình cho chứng thực sử dụng một sự kết hợp của máy phục vụ Web (Web Server) và các nhà cung cấp chứng thực NET Framework
- Hiệu suất được cải thiện: NET Framework cải thiện hiệu suất các ứng dụng Web đặc thù ASP.NET sử dụng khả năng tối ưu hóa cho những bộ xử lý nào đó và với việc cất giữ một cách linh động ASP.NET có thể cải thiện hiệu suất hơn hai đến ba lần so với các ứng dụng ASP hiện hành
Trang 178
- Sự tin cậy vững chắc: Giành được sự tin cậy mức xí nghiệp với NET Framework, thông qua việc quản lý bộ nhớ một cách tự động, tính tương thích phiên bản có bảo hành, vòng lặp chu kỳ ứng dụng động và các dịch vụ xí nghiệp đã được cung cấp bởi COM+ [5]
1.2 Ngôn ngữ C#
1.2.1 Giới thiệu về C#
C# (C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ
sư của Microsoft vào năm 2000, Trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
C# được thiết kế cho CLI, mà gồm Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc mát tính khác nhau
C# với sự hỗ trợ mạnh mẽ của NET Framework giúp cho việc tạo ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), Web Application, Web Service trở nên rất dễ dàng
Hình 1.3 Cấu trúc của phần mềm C#
1.2.2 Đặc trưng của C#
Các đặc điểm để làm cho C# là ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng rãi:
Trang 189
- C# là ngôn ngữ đơn giản: Như ta đã biết thì ngôn ngữ C# dựng trên nền tảng của C++ và Java nên ngôn ngữ C# khá đơn giản Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán
tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vài trong các sự cải tiến là loại bỏ các
dư thừa, hay là thêm vào những cú pháp thay đổi
- C# là ngôn ngữ hiện đại Một vài khái niệm khá mới mẻ khá mơ hồ với những người vừa mới học lập trình, như xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo mật
mã nguồn… Đây là những đặc tính được cho là một ngôn ngữ hiện đại cần có Và C# chứa tất cả các đặc tính vừa nêu trên
- C# là một ngôn ngữ lập trình thuần hướng đối tượng Lập trình hướng đối tượng (OOP) là một phương pháp lập trình có 4 tính chất Đó là tính trừu tượng (Abstraction), tính đóng gói (Encapsulation), tính đa hình (Polymorphism) và tính kế thừa (Inheritance) C# hỗ trợ cho chúng ta tất cả những đặc tính trên
- C# là một ngôn ngữ ít từ khóa C# được sử dụng giới hạn số từ khóa (Gồm khoảng
80 từ khóa và hơn 10 kiểu dữ liệu xây dụng sẵn)
Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C#:
- C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá
dễ dàng tiếp cận và học nhanh với C#
- C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau
- C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những
ưu điểm của ngôn ngữ đó
- C# là một phần của NET Framework nên được sự hỗ trợ khá lớn đến từ nền tảng này
- C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ [1]
1.3 SQL Server
1.3.1 Giới thiệu hệ quản trị SQL Server
Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), cung cấp cách tổ chức dữ liệu bằng cách lưu chúng vào các bảng Dữ liệu quan hệ được lưu trữ trong các bảng và các quan hệ đó được định nghĩa các bảng với nhau SQL Server
sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài
Trang 1910
SQL Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng
để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS
Hình 1.4 SQL Server 2014
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server có thể kết hợp với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…
Người dùng truy cập dữ liệu trên SQL Server thông qua ứng dụng Người quản trị
cơ sở dữ liệu truy cập SQL Server trực tiếp để thực hiện các chức năng cấu hình, quản trị và thực hiện các thao tác bảo trì cơ sở dữ liệu
Ngoài ra, SQL Server là một cơ sở dữ liệu có khả năng mở rộng, nghĩa là chúng
có thể lưu một lượng lớn và hỗ trợ tính năng cho phép nhiều người dùng truy cập dữ liệu đồng thời
1.3.2 Các thành phần cơ bản trong SQL Server
SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full Text Search Service… Các
Trang 20Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table
và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như:ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC)
Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (Resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một người dùng đăng xuất
Replication: Cơ chế tạo bản sao (Replica):
Giả sử chúng ta có một database dùng để chứa dữ liệu được các ứng dụng thường xuyên cập nhật Khi chúng ta muốn có một cái database giống y hệt như thế trên một server khác để chạy báo cáo (Report database) (Cách làm này thường dùng để tránh ảnh hưởng đến performance của server chính) Vấn đề là report server của chúng ta cũng cần phải được cập nhật thường xuyên để đảm bảo tính chính xác của các báo cáo Chúng
ta không thể dùng cơ chế back up and restore trong trường hợp này Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ (synchronized)
Integration Services (DTS)
Integration Services là một tập hợp các công cụ đồ họa và các đối tượng lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu
Trang 2112
Nếu chúng ta làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM), SQL Server, Microsoft Access….Chúng ta chắc chắn sẽ có nhu cầu di chuyển data giữa các server này (Migrate hay Transfer) và không chỉ di chuyển chúng ta còn muốn định dạng (Format) nó trước khi lưu vào database khác, khi đó chúng ta sẽ thấy DTS giúp chúng ta giải quyết công việc trên dễ dàng
Analysis Services
Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như chúng ta không thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoft cung cấp cho chúng ta một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng
và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (Multi-dimension cubes)
và kỹ thuật “khai phá dữ liệu” (Data mining)
Notification Services
Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và triển khai các ứng dụng tạo và gửi thông báo Notification Services có thể gửi thông báo theo tức thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết bị khác nhau
Reporting Services
Reporting Services bao gồm các thành phần server và client cho việc tạo, quản lý
và triển khai các báo cáo Reporting Services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
Full Text Search Service
Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các CSDL SQL Server Đánh chỉ mục với Full Text Search có thể được tạo trên bất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụng toán tử LIKE trong SQL với trường hợp tìm văn bản
Service Broker
Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việc các ứng dụng nhảy qua các Instance Service Broker giao tiếp qua giao thức TCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau theo hướng trao đổi các message Service Broker chạy như một phần của bộ máy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàng đợi cho các ứng dụng SQL Server
Trang 2213
1.3.3 Lịch sử ra đời SQL Server và các phiên bản
Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các hệ điều hành chạy 16 bit với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngày nay
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5 Sau đó, Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0 Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5 Trong khi đó từ version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng
về Web và làm cho SQL Server 2000 đáng tin cậy hơn
Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance Tức là chúng
ta có thể cài đặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng Nghĩa là chúng ta có thể chạy song song version 6.5 hoặc 7.0 với phiên bản 2000 trên cùng một máy (Điều này không thể xảy ra với các phiên bản trước đây) Khi đó phiên bản cũ trên máy chúng ta là Default Instance còn phiên bản 2000 mới vừa cài sẽ
1.3.4 Các đặc điểm của SQL Server
- Dễ cài đặt: Nhằm đáp ứng mục đích dễ cài đặt, dễ sử dụng và dễ quản lý, SQL Server cung cấp một tập hợp các công cụ để quản trị và phát triển
- Mềm dẻo và khả năng dễ dùng: Đây là phiên bản cơ sở dữ liệu có thể làm việc trên nhiều hệ thống khác nhau từ máy tính xách tay cài đặt hệ điều hành Windows đến máy tính server
- Hỗ trợ mô hình Client/Server: SQL Server được thiết kế theo mô hình khách/chủ (Client/Server) Trong mô hình này, máy khách và máy chủ như tham gia vào một hội thoại theo cơ chế “yêu cầu - đáp ứng” (Request - Reponse) Một ứng dụng chạy trên máy khách và yêu cầu dữ liệu từ máy chủ Phía máy chủ xử lý các yêu cầu từ phía ứng dụng và chỉ gửi về các dữ liệu được yêu cầu bởi máy khách Do đó, các công việc được tách biệt giữa máy khách và máy chủ Công việc phía máy trạm là yêu cầu dữ liệu bằng
Trang 23- Kho dữ liệu (Data Warehousing): SQL Server cung cấp một vài công cụ để xây dựng kho dữ liệu, sử dụng DTS designer, chúng ta có thể định nghĩa các bước thực hiện, luồng công việc và chuyển đổi dữ liệu xây dựng kho dữ liệu từ nhiều nguồn dữ liệu khác nhau SQL Server cũng cung cấp nhiều công cụ để phân tích dữ liệu dựa trên các câu hỏi bằng tiếng Anh Dữ liệu đã được lấy ra và phân tích được dùng trong quá trình phân tích dữ liệu trực tuyến [3]
Trang 24kê được thực hiện hàng ngày, tháng, cũng có khi đột xuất theo yêu cầu
Thủ kho quản lý số lượng hàng trong kho theo mã số hàng hoá, kiểm kê hàng hoá trong kho
Nhân viên bán hàng làm việc theo ca, khi đến ca làm việc của mình, nhân viên phải đăng nhập vào hệ thống Nhân viên bán hàng có nhiệm vụ tính tiền những mặt hàng
mà khách mua và lập hoá đơn cho khách
Khách hàng là người mua hàng từ siêu thị Có 2 dạng khách hàng: khách hàng bình thường và khách hàng thân thiện (VIP) Nếu khách hàng là khách hàng thân thiện thì
mã số khách hàng sẽ được lưu trong hệ thống và được hưởng quyền lợi từ các chính sách ưu đãi của cửa hàng
Việc quản lý hàng hóa được thực hiện như sau:
- Nhập hàng Có 2 hình thức nhập hàng:
o Nhập hàng mới lấy về Khi hàng hóa được nhập vào thì thủ kho sẽ tạo phiếu nhập hàng, ghi đầy đủ thông tin như tên hàng, số lượng, đơn giá, ngày nhập, nhà cung cấp…
o Nhập hàng do khách hàng trả về do bị lỗi… Thủ kho lập phiếu nhận hàng trả lại và điền đầy đủ thông tin như: Tên khách hàng, lý do, mã hóa đơn xuất hàng, ngày ngày trả hàng…
- Xuất hàng Có 2 hình thức xuất hàng:
o Xuất hàng bán hàng: Nhân viên lập hóa đơn bán hàng cho khách hàng gồm các thông tin như: Tên hàng, số lượng, đơn giá, tổng tiền, ngày bán…
o Xuất hàng trả nhà cung cấp do bị lỗi, hết hạn sử dụng…
- Kiểm kho: kiểm tra các mặt hàng trong kho, số lượng tồn, hạn sử dụng, đưa ra đơn đặt hàng
- Quản lý công nợ: có 2 loại công nợ là:
o Nợ nhà cung cấp: khi nhập hàng nhưng chưa thanh toán hoặc thanh toán một phần
o Khách hàng nợ tiền mua hàng Chỉ khách quen thuộc mới được phép nợ, và phải có đầy đủ thông tin của khách hàng
2.2 Đề xuất mô hình
Biểu đồ phân cấp chức năng của phần mềm
Trang 2516
Hình 2.1 Phân cấp chức năng của phần mềm 2.2.1 Đăng nhập, đăng xuất
a Đăng nhập (Log in)
Để đảm bảo tính bảo mật của hệ thống cũng như phân quyền cho người dùng
b Đăng xuất (Log out)
Thực hiện đăng xuất khỏi tài khoản hiện tại
c Đổi mật khẩu (Change password)
Cho phép người dùng thay đổi mật khẩu
2.2.2 Quản lý danh mục (Category)
Người dùng
Tài khoản
Nhóm tài khoản
Phân quyền
Hàng hóa
Thông tin hàng hóa
Nhóm hàng hóa
Đơn vị tính
Khu vực trưng bày
Khách hàng
Thông tin khách hàng
Nhóm khách hàng
Nhà cung cấp
Thông tin nhà cung cấp
Nhóm nhà cung cấp
Hãng sản xuất
Trang 26 Phân quyền
Cho phép quản trị viên thực hiện phân quyền cho từng nhóm tài khoản bao gồm thêm, sửa, xóa quyền với từng nhóm tài khoản
b Quản lý danh mục hàng hóa
Quản lý tài khoản
Chức năng này cho phép quản trị viên quản lý thông tin người dùng bao gồm thêm, sửa, xóa người dùng và thông tin người dùng quản lý quyền, chức năng
Quản lý quyền
Cho phép quản trị viên quản lý thông tin quyền bao gồm thêm, sửa, xóa quyền Chức năng này nhằm mục đích phân nhóm các quyền cho từng phòng ban cũng như cho từng nhóm tài khoản khách nhau Đảm bảo tính bảo mật của hệ thống, cũng như phân cấp chức năng quyền hạn của từng nhân viên quản lý danh mục hàng hóa
Phân quyền
Cho phép quản trị viên thực hiện phân quyền cho từng nhóm tài khoản bao gồm thêm, sửa, xóa quyền với từng nhóm tài khoản
c Quản lý danh mục hàng hóa
Quản lý thông tin hàng hóa
Cho phép người dùng quản lý thông tin của hàng hóa như: tên hàng hóa, mã hàng hóa, giá, nhóm hàng hóa, hãng sản xuất, nhà cung cấp, hạn sử dụng…
Chức năng bao gồm thêm, sửa, xóa danh mục hàng hóa
Quản lý nhóm hàng hóa
Cho phép người dùng phân nhóm hàng hóa để có thể dễ dàng quản lý các mặt hàng, bao gồm việc thêm sửa xóa nhóm hàng hóa
Quản lý đơn vị tính
Trang 2718
Cho phép người dùng quản lý đơn vị tính của sản phầm, gồm thêm, sửa, xóa đơn
vị tính
Quản lý khu vực trưng bày
Cho phép người dùng quản lý khu vực trưng bày, gồm thêm, sửa, xóa khu vực trưng bày Giúp cho nhân viên có thể tìm kiếm hàng hóa trong cửa hàng một chách dễ dàng
d Quản lý nhà cung cấp
Quản lý thông tin nhà cung cấp
Cho phép người dùng quản lý các thông tin của nhà cung cấp, gồm thêm, sửa, xóa nhà cung cấp
Sau khi nhập kho thành công, hệ thống sẽ cập nhật số lượng tồn kho của mặt hàng
Quản lý hàng hóa
Trang 2819
b Xuất hàng
Cho phép người dùng thực hiện thêm, sửa, xóa hóa đơn xuất hàng Các thông tin cần quản lý như: Hàng hóa, số lượng, đơn giá, thành tiền, khách hàng, tổng giá trị xuất hàng, công nợ…
Sau khi xuất kho thành công, hệ thống sẽ cập nhật số lượng tồn kho của mặt hàng Yêu cầu: chỉ có thế xuất kho khi hàng hóa còn tồn trong kho
c Khách trả hàng
Cho phép người dùng quản lý thông tin khách trả lại hàng bao gồm thêm, sửa, xóa thông tin khách trả lại hàng, các thông tin như: Khách hàng, hàng hóa, giá xuất cho khách, giá nhận lại hàng, số lượng tổng số tiền trả lại, lý do trả lại hàng hóa…
Sau khi hàng được trả lại thành công, hệ thống sẽ cập nhật số lượng tồn kho
d Trả lại hàng cho nhà cung cấp
Cho phép người dùng quản lý thông tin trả lại hàng cho nhà cung cấp bao gồm thêm, sửa, xóa thông tin trả hàng cho nhà cung cấp, các thông tin như: nhà cung cấp, hàng hóa, số lượng, giá nhập, giá xuất, tổng số nhận lại, lý do trả lại hàng hóa…
Sau khi hàng được trả thành công, hệ thống sẽ cập nhật số lượng tồn kho
a Quản lý công nợ với nhà cung cấp
Cho phép kiểm tra tình hình công nợ của cửa hàng, doanh nghiệp với các nhà cung cấp, cũng như thời hạn trả nợ…
Quản lý công nợ
Trang 2920
b Quản lý công nợ với khách hàng
Cho phép kiểm tra tình hình công nợ của của khách hàng, cũng như thời hạn trả nợ,
nợ quá hạn để có các phương án thu hồi tiền…
2.2.5 Tồn kho
Cho phép người dùng tra cứu được số lượng các mặt hàng còn trong kho, số lượng tồn, tình trạng hạn sử dụng của hàng hóa… để có thể kịp thời đưa ra các chiến lược kinh doanh phù hợp
2.2.6 Lập báo cáo
Hình 2.5 Lập báo cáo
Cho phép người dùng xuất các loại báo cáo như: hóa đơn nhập, xuất hàng, chi tiết nhập xuất hàng, hàng khách trả lại, hàng trả nhà cung cấp, thu chi, công nợ, báo cáo tổng hợp…
Tất cả các báo cáo đều có thể lọc theo khoảng thời gian nhất định, theo ngày, theo quý, theo tháng, theo năm hoặc từ ngày đến ngày
Giúp cho người dùng có thể nắm bắt tính hình kinh doanh của minh, đánh giá được nhu cầu của người dùng dựa vào việc thống kê được số lượng của từng mặt hàng bán được, cũng như dễ dàng so sánh giá nhập của các nhà cung cấp hoặc các khách hàng quen thuộc để đưa ra chiến lược phù hợp
Trang 3021
Hình 2 6 Cơ sở dữ liệu 1
Trang 3122
Hình 2.7 Cơ sở dữ liệu 2
Trang 32Attribute name Data type Description
functionID uniqueidentifier Mã chức năng
funcName nvarchar (50) Tên chức năng
- Bảng right (Bảng quyền) chứa các thông tin về các loại quyền, ví dụ như: Quyền admin, quyền nhân viên…
Attribute name Data type Description
rightID uniqueidentifier Mã quyền
rightName nvarchar (50) Tên quyền
- Bảng decentralized (Bảng phân quyền) chứa các thông tin về phân quyền Mỗi 1 quyền thì sẽ gồm danh sách một số chức năng nhất định, ví dụ như: Admin thì có toàn
bộ chức năng, nhân viên thì có các chức năng như bán hàng, in hóa đơn…
Attribute name Data type Description
rightID uniqueidentifier Mã quyền
functionID uniqueidentifier Mã chức năng
describe nvarchar (255) Ghi chú
Trang 3324
- Bảng employee group (Bảng nhóm nhân viên) chứa các thông tin về nhóm nhân viên, ví dụ như: Nhóm bán hàng, nhóm quản trị, nhóm kiểm kho…
Attribute name Data type Description
employeeGroupID uniqueidentifier Mã nhóm nhân viên
employeeGroupName nvarchar (50) Tên nhóm nhân viên
rightID uniqueidentifier Mã quyền
describe nvarchar (255) Ghi chú
- Bảng employee (Bảng nhân viên) chứa các thông tin về nhân viên, ví dụ như: Nhân viên A, thuộc nhóm bán hàng, giới tính nam…
Attribute name Data type Description
employeeID uniqueidentifier Mã nhân viên
employeeName nvarchar (50) Tên nhân viên
employeeGroupID uniqueidentifier Mã nhóm nhân viên
userName nvarchar (50) Tên đăng nhập
password nvarchar (100) Mật khẩu
phoneNumber nvarchar (100) Số điện thoại
rightID uniqueidentifier Mã quyền
shiftID uniqueidentifier Mã ca
Trang 34shiftName nvarchar (50) Tên ca
startTime time (7) Thời gian bắt đầu
- Bảng supplier group (Bảng nhóm nhà cung cấp) chứa các thông tin về nhóm nhà cung cấp, ví dụ như: VIP, thường, ít…
Attribute name Data type Description
supplierGroupID uniqueidentifier Mã nhóm nhà cung cấp
supplierGroupName nvarchar (50) Tên nhóm nhà cung cấp
describe nvarchar (255) Ghi chú
- Bảng supplier (Bảng nhà cung cấp) chứa các thông tin về nhà cung cấp, ví dụ như: Nhà cung cấp Beer Laos số 1…
Attribute name Data type Description
supplierID uniqueidentifier Mã nhà cung cấp
supplierName nvarchar (50) Tên nhà cung cấp
supplierGroupID uniqueidentifier Mã nhóm nhà cung cấp
address nvarchar (255) Địa chỉ
contact nvarchar (50) Người liên hệ
phoneNumber nvarchar (100) Số điện thoại
Trang 3526
describe nvarchar (255) Ghi chú
- Bảng customer group (Bảng nhóm khách hàng) chứa các thông tin về nhóm khách hàng, ví dụ như: Khách lẻ, khách VIP, khách thường…
Attribute name Data type Description
customerGroupID uniqueidentifier Mã nhóm khách hàng
customerGroupName nvarchar (50) Tên nhóm khách hàng
describe nvarchar (255) Ghi chú
- Bảng customer (Bảng khách hàng) chứa các thông tin về khách hàng, ví dụ như: Khách hàng Nguyễn Văn A, thuộc nhóm A, ngày sinh 01/01/2000…
Attribute name Data type Description
customerID uniqueidentifier Mã khách hàng
customerName nvarchar (50) Tên khách hàng
customerGroupID uniqueidentifier Mã nhóm khách hàng
address nvarchar (255) Địa chỉ
phoneNumber nvarchar (100) Số điện thoại
Trang 3627
lastPurchase datetime Mua lần cuối
- Bảng producer (Bảng hãng sản xuất) chứa các thông tin về hãng sản xuất, ví dụ như: Coca cola, PEPSI, bánh kẹo…
Attribute name Data type Description
producerID uniqueidentifier Mã hãng sản xuất
producerName nvarchar (50) Tên hãng sản xuất
- Bảng product group (Bảng nhóm hàng hóa) chứa các thông tin về nhóm hàng hóa, ví dụ như: Nhóm đồ khô, nhóm thực phẩm tươi, nhóm nước uống…
Attribute name Data type Description
productGroupID uniqueidentifier Mã nhóm hàng hóa
productGroupName nvarchar (50) Tên nhóm hàng hóa
- Bảng product (Bảng hàng hóa) chứa các thông tin về hàng hóa, ví dụ như: Bánh ngọt A, Nhóm đồ khô, giá nhập 100 nghìn, giá bán 120 nghìn…
Attribute name Data type Description
productID uniqueidentifier Mã hàng hóa
productName nvarchar (50) Tên hàng hóa
productGroupID uniqueidentifier Mã nhóm hàng hóa
Trang 3728
unitID uniqueidentifier Mã đơn vị tính
placeStoreID uniqueidentifier Mã chỗ để hàng
searchName nvarchar (50) tên tìm kiếm
producerID uniqueidentifier Mã hãng sản xuất
- Bảng unit (Bảng đơn vị tính) chứa các thông tin về đơn vị tính, ví dụ như: Chiếc, cái, Kg (Kilogam), l (Lít), m (Mét)…
Attribute name Data type Description
unitID uniqueidentifier Mã đơn vị tính
unitName nvarchar (50) Tên đơn vị tính
- Bảng place to store (Bảng chỗ để hàng) chứa các thông tin về chỗ để hàng, ví dụ như: Khu A, Khu B…
Attribute name Data type Description
placeStoreID uniqueidentifier Mã chỗ để hàng
placeStoreName nvarchar (50) Tên chỗ để hàng
Trang 38supplierID uniqueidentifier Mã nhà cung cấp
employeeID uniqueidentifier Mã nhân viên
- Bảng details merchandise (Bảng chi tiết nhập hàng) chứa các thông tin về chi tiết nhập hàng, ví dụ như: Hàng hóa A thuộc mã đơn hàng 001, số lượng 10 chiếc, đơn giá
10 nghìn…
Attribute name Data type Description
merchandiseID uniqueidentifier Mã nhập hàng
productID uniqueidentifier Mã hàng hóa
- Bảng bill (Bảng hóa đơn bán hàng) chứa các thông tin về bán hàng, ví dụ như: Ngày 01/01/2018 bán tổng 1 triệu đồng cho khách hàng B, do nhân viên A bán Đã trả
500 nghìn, còn nợ 500 nghìn…
Attribute name Data type Description
customerID uniqueidentifier Mã khách hàng
Trang 3930
employeeID uniqueidentifier Mã nhân viên
- Bảng details bill (Bảng chi tiết hóa đơn bán hàng) chứa các thông tin về chi tiết bán hàng, ví dụ như: Hàng hóa A thuộc mã đơn hàng 001, số lượng 10 chiếc, đơn giá
10 nghìn…
Attribute name Data type Description
productID uniqueidentifier Mã hàng hóa
- Bảng payroll (Bảng trả lương nhân viên) chứa các thông tin về trả lương nhân viên ví dụ như: Ngày 01/01/2018 trả lương cho nhân viên A, do nhân viên B trả, số tiền
5 triệu đồng…
Attribute name Data type Description
payrollID uniqueidentifier Mã trả lương
employeeID uniqueidentifier Mã nhân viên
payerID uniqueidentifier Mã người trả
Trang 4031
- Bảng delivery of shift (Bảng giao ca nhân viên) chứa các thông tin về giao ca ví
dụ như: 10h ngày 01/01/2018 nhân viên A giao ca cho nhân viên B, số tiền chuyển ca 1 triệu đồng…
Attribute name Data type Description
DeliveryOfShiftID uniqueidentifier Mã giao ca
deliveryEmployeeID uniqueidentifier Mã nhân viên giao
receptionEmployeeID uniqueidentifier Mã nhân viên nhận
- Bảng inventory (Bảng kiểm kho) chứa các thông tin về kiểm kho ví dụ như: Ngày 01/01/2018 nhân viên A thực hiện kiểm kho, tổng tiền chênh lệch là 200 nghìn đồng
Attribute name Data type Description
inventoryID uniqueidentifier Mã kiểm kho
employeeID uniqueidentifier Mã nhân viên
totalDifference float Tổng tiền chênh lệch
- Bảng details inventory (Bảng chi tiết kiểm kho) chứa các thông tin về chi tiết kiểm kho ví dụ như: Kiểm kho sản phẩm A thuộc mã kiểm kho là 001 có số lượng trên phần mềm là 10 chiếc, số lượng thực tế 9 chiếc chênh lệch -1 chiếc đơn giá 20 nghìn đồng…
Attribute name Data type Description
inventoryID uniqueidentifier Mã kiểm kho
productID uniqueidentifier Mã hàng hóa