6. Cấu trúc khóa luận
2.2. Phân tích hệ thống về dữ liệu
2.2.1. Lƣợc đồ dữ liệu theo mô hình thực thể liên kết
a. Xác định các kiểu thực thể, định danh và các thuộc tính mô tả Sản phẩm: Mã sản phẩm, tên sản phẩm, số lượng, giá, hình ảnh, chi tiết, tình trạng.
Nhà cung cấp: Mã NCC, Tên NCC, địa chỉ, số điện thoại, Fax, email, tình trạng.
Loại sản phẩm: Mã loại sản phẩm, tên loại, tình trạng.
Khách hàng: Mã khách hàng, tên khách hàng, ngày sinh, địa chỉ, số điện thoại.
Bình luận: Mã bình luận, nội dung bình luận, thời gian bình luận.
Quản trị viên: Mã quản trị viên, tên quản trị viên, quyền quản trị.
Quyền: Mã quyền, tên quyền.
Đơn hàng: Mã đơn hàng, người mua, ngày lập, sản phẩm, số lượng, đơn giá, thành tiền.
b. Xác định các kiểu liên kết và mối quan hệ giữa các thực thể Loại sản phẩm – Sản phẩm (1 - N)
Một loại sản phẩm có thể chứa nhiều sản phẩm, một sản phẩm thuộc về một loại sản phẩm duy nhất.
Nhà cung cấp – sản phẩm (1 - N)
Một nhà cung cấp có thể cung cấp nhiều sản phẩm, một sản phẩm thuộc về một nhà cung cấp duy nhất.
- 30 -
Sản phẩm - Bình luận (1 - N)
Một sản phẩm có thể có nhiều bình luận, một bình luận thuộc về một sản phẩm duy nhất.
Đơn hàng – sản phẩm (N - N)
Một đơn hàng có thể chứa một hoặc nhiều sản phẩm, một sản phẩm cũng có thể có trong một hoặc nhiều đơn hàng.
Khách hàng – Đơn hàng (1 - N)
Một khách hàng có thể đặt 1 hoặc nhiều đơn hàng, một đơn hàng thuộc về duy nhất một khách hàng.
Khách hàng – Bình luận (1 - N)
Một khách hàng có thể đăng tải nhiều bình luận, một bình luận xác định một khách hàng duy nhất.
Quyền – Quản trị viên (1 - N)
Một quyền có thể có nhiều quản trị viên trong đó, một quản trị viên chỉ có duy nhất một quyền.
- 31 - c. Sơ đồ thực thể liên kết Quyền Mã quyền Tên quyền Bình luận Mã bình luận Nội dung Thời gian Đơn hàng Mã ĐH Người đặt Ngày lập Ngày giao Sản phẩm Số lượng Đơn giá Thành tiền Khách hàng Mã KH Tên KH Ngày sinh Địa chỉ SĐT Chủng loại Mã loại Tên loại Tình trạng Nhà cung cấp Mã NCC Tên NCC Địa chỉ SĐT Email Fax Sản phẩm Mã SP Tên SP Số lượng Giá Hình ảnh Chi tiết Tình trạng Quản trị viên Mã QTV Tên QTV Quyền
- 32 -
Hình 2.7.Sơ đồ thực thể liên kết
2.2.2. Lƣợc đồ dữ liệu theo mô hình quan hệ Chủng loại (Mã loại, Tên loại, Tình trạng).
Nhà cung cấp (Mã NCC, Tên NCC, Địa chỉ, SĐT, Fax, Email, Tình trạng).
Sản phẩm (Mã sản phẩm, Mã loại, Mã NCC, Tên sản phẩm, Số lượng, Giá, Hình ảnh, Chi tiết, Tình trạng).
Khách hàng (Mã KH, Tên KH, Ngày sinh, Địa chỉ, SĐT, Email, Tình trạng).
Bình luận (Mã BL, Mã KH, Email, Nội dung BL, Thời gian BL).
Đơn hàng (Mã ĐH, Mã KH, Ngày ĐH, Địa chỉ, Tình trạng).
- 33 -
2.3.Thiết kế lƣợc đồ chƣơng trình a. Module cập nhật thông tin
N N Y N Y Thông tin đã có? Chỉnh sửa Chính xác? Lưu Thêm mới BEGIN Thông tin cần cập nhật
- 34 -
Hình 2.8. Đặc tả module cập nhật thông tin
b. Module tìm kiếm N N Y Y N Tìm kiếm? Hiển thị và kết xuất T2 Tiếp tục? END BEGIN END Các thông tin yêu cầu TK
- 35 - Hình 2.9. Đặc tả module tìm kiếm c. Module thống kê N N Y Hình 2.10. Đặc tả module thống kê Thống kê? Hiển thị và kết xuất T2 BEGIN END Yêu cầu thống kê
- 36 -
2.4. Thiết kế cơ sở dữ liệu
Bảng Quyền quản trị (tblPermission)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
PermiId Int Mã quyền
PermiName Nvarchar 100 Tên quyền
Bảng 2.1. Bảng quyền quản trị
Bảng Quản trị viên (tblAdmin)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
AdminId Int Mã Admin
PermiId Int Mã quyền
Username Varchar 50 Tên đăng nhập
Password Varchar 50 Mật khẩu
Bảng 2.2. Bảng quản trị viên
Bảng Người dùng (tblUser)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
mUserName Varchar 50 Tên đăng nhập
mPassword Varchar 50 Mật khẩu
- 37 -
mFullName Nvarchar 50 Họ và tên
mBirth Datetime Ngày sinh
mAdd Nvarchar 100 Địa chỉ
mPhoneNumber Char 20 Số điện thoại
Bảng 2.3. Bảng người dùng
Bảng Nhà cung cấp (tblProvider)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
providerId Char 20 Mã nhà cung cấp
provName Nvarchar 100 Tên nhà cung cấp
provAddress Nvarchar 50 Địa chỉ NCC
provPhone Char 20 Điện thoại NCC
provFax Char 20 Fax
provEmail Varchar 50 Email NCC
provStatus Bit Trạng thái NCC
Bảng 2.4. Bảng nhà cung cấp
Bảng loại sản phẩm (tblCategory)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
categoryId Int Mã loại
cateName Nvarchar 100 Tên loại
cateStatus Bit Trạng thái
- 38 -
Bảng sản phẩm (tblProduct)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
prodId Char 20 Mã sản phẩm
providerId Char 20 Mã NCC
categoryId Int Mã loại
prodName Nvarchar 50 Tên sản phẩm
prodAmount Int Số lượng
prodPrice Money Giá
prodImage Varchar 100 Đường dẫn hình ảnh
prodDetail Ntext Chi tiết sản phẩm
prodDateUpdate Datetime Ngày cập nhật
prodNumCm Int Số bình luận
prodStatus Bit Tình trạng
Bảng 2.6. Bảng sản phẩm
Bảng Đơn hàng (tblOrder)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
orderId Int Mã ĐH
mUserName Varchar 50 Tên đăng nhập
orderDate Datetime Ngày đặt hàng
- 39 -
Address Nvarchar 200 Địa chỉ
Receiver Nvarchar 100 Tên người nhận
sumMoney Money Tổng tiền
orderStatus Int Tình trạng
Bảng 2.7. Bảng đơn hàng
Bảng Chi tiết đơn hàng (tblOrderDetail)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
orderId Int Mã ĐH
prodId Char 20 Mã sản phẩm
countBuy Int Số lượng
priceBuy Money Đơn giá
TimeBuy DateTime Thời gian đặt
Bảng 2.8. Bảng chi tiết đơn hàng
Bảng bình luận (tblComment)
Tên trƣờng Kiểu dữ liệu Kích cỡ Ghi chú
comId Int Mã bình luận
prodId Char 20 Mã sản phẩm
mUserName Varchar 50 Tên đăng nhập
Email Varchar 50 Email
comTime Datetime Thời gian đăng
comContent Ntext Nội dung bình luận
comStatus Bit Trạng thái
- 40 -
2.5. Sơ đồ website
Chương trình được thiết kế cho hai đối tượng người dùng là quản trị viên (admin) và khách hàng (user). Do đó tôi xây dựng hai lược sơ đồ website (sitemap) riêng cho hai đối tượng này.
Sitemap phía admin
Quản trị Trang chủ Quản trị viên Quyền quản trị Đăng nhập Sản phẩm Loại sản phẩm Thêm,sửa, xóa admin Thêm, sửa quyền
Thêm, sửa sản phẩm
Thêm, sửa loại
Nhà cung cấp Thêm, sửa NCC
Bình luận Đơn hàng Đổi mật khẩu Cập nhật trạng thái bình luận Cập nhật trạng thái đơn hàng
- 41 -
Hình 2.11. Sitemap phía admin
Sitemap phía User
Trang chủ Sản phẩm Chi tiết sản phẩm Tìm kiếm Đăng ký Liên hệ Hỗ trợ Đăng nhập Giỏ hàng Cập nhật thông tin Xem đơn hàng Đăng xuất
- 42 -
Hình 2.12. Sitemap phía user
CHƢƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM CHƢƠNG TRÌNH 3.1. Cài đặt chƣơng trình
3.1.1. Lựa chọn môi trƣờng cài đặt
Hiện nay có rất nhiều công cụ hỗ trợ lập trình web như Microsoft Front Page, Macromedia Dreamweaver, Joomla, … Hầu hết các công cụ này đều có Templates cho phép tạo ra các trang web nhanh chóng và dễ dàng mà không cần phải viết code nhiều. Tuy nhiên trong những năm gần đây, Microsoft đã đưa ra một công cụ lập trình web mạnh có tính bảo mật cao, ứng dụng rất rộng rãi, đó là ASP.NET.Đó là một ngôn ngữ lập trình web dựa trên công nghệ .NET Framework – đây là một công nghệ mới và mạnh được sử dụng rất rộng rãi trên thế giới.Cùng với SQL Server, ASP.NET đã tạo ra một cuộc cách mạng về ngôn ngữ lập trình và lưu trữ dữ liệu. Đối với chương trình này, để đáp ứng yêu cầu bảo mật và lưu trữ dữ liệu lớn, môi trường cài đặt phù hợp nhất là ASP.NET trong bộ công cụ Visual Studio 2008, trong đó ngôn ngữ lập trình được chọn là C# và hệ quản trị CSDL là SQL Server 2005.
3.1.2. Tiếp cận công nghệ ASP.NET và SQL Server a. ASP.NET
Tổng quan về ASP.NET
ASP.NET được thiết kế để tương thích với các phiên bản ASP trước đó của Microsoft, cho nên chúng ta có thể phát triển ASP chung với ASP.NET
Đăng xuất
Đăng ký
- 43 -
trên cùng một máy chủ mà không cần phải thay đổi cấu hình ứng dụng. ASP.NET được biên dịch dựa trên môi trường .NET cho phép tạo ra các ứng dụng trong bất kỳ ngôn ngữ lập trình nào có hỗ trợ .NET như VB.NET,C#.NET,… (ASP.NET hỗ trợ đến 26 ngôn ngữ lập trình).
ASP.NET được thiết kế tương tự như trình soạn thảo HTML với WYSIWYG và các công cụ lập trình khác, bao gồm có Visual Studio cho phép phát triển các ứng dụng dễ dàng hơn.
Độc lập ngôn ngữ: ASP.NET cho phép biên dịch không phụ thuộc vào ngôn ngữ, thực hiện việc tối ưu với các ngôn ngữ khác nhau. Chúng ta có thể sử dụng Visual Basic, C++, C#,…
Dễ phát triển: ASP.NET cho phép khai báo và viết mã đơn giản, được tổ chức theo một cấu trúc thuận tiện cho nhà phát triển, đó là việc tách mã chương trình và mã giao diện thành hai phần riêng biệt.
Tính mềm dẻo và khả năng nâng cấp: ASP.NET là hướng đối tượng, do đó chúng ta có thể kiểm soát được các đối tượng trong chương trình như hiển thị dữ liệu và các sự kiện của đối tượng. Hơn nữa ASP.NET được biên dịch trước khi sử dụng nên không phụ thuộc vào việc lựa chọn ngôn ngữ lập trình.
Hỗ trợ nhiều trình duyệt: Các ứng dụng ASP.NET chạy được trên tất cả các trình duyệt web.
Yêu cầu về phần cứng và phần mềm
Hiện nay ứng dụng ASP.NET được Microsoft phát triển với nhiều phiên bản: 1.0, 1.1, 2.0, 3.0, 3.5, 4.0. Tương ứng với mỗi phiên bản ứng dụng là một bộ phần mềm ứng dụng đi kèm để phát triển.
Các phiên bản ASP.NET đều tương thích với Windows từ Windows 2000 và Win XP trở lên là những hệ điều hành hỗ trợ tốt cho môi trường phát triển ứng dụng. Lý do là vì các phiên bản Windows hỗ trợ Unicode và có thể cài đặt IIS.
- 44 -
Trong đề tài lần này, tôi sử dụng phiên bản ASP.NET 3.5 tương ứng với bộ phần mềm Visual Studio 2008. Ngoài lý do là ASP.NET 3.5 có nhiều tính năng mới vượt trội so với ASP.NET 2.0 như AJAX, các Control, Assembly mới, Dynamic Data, MVC thì bộ công cụ lập trình Visual Studio 2008 cũng hỗ trợ nhiều cho việc xây dựng ứng dụng web.
Tương ứng với các phần mềm trên, yêu cầu về phần cứng đối với máy tính như sau: Mức tối thiểu yêu cầu phần cứng là bộ xử lý Pentium II, RAM 246MB. HĐ còn trống 5GB. Do chương trình sử dụng lớp HugeInteger xử lý số nguyên lớn tự xây dựng có độ phức tạp tính toán lớn nên yêu cầu phần cứng máy tính có cấu hình mạnh với bộ vi xử lý tốc độ cao, dung lượng RAM cùng ổ cứng nên lớn hơn mức tối thiểu.
b. SQL Server
Tổng quan về SQL Server
Hiện nay có một số hệ quản trị CSDL như My SQL, SQL Server, Oracle, Access.Mỗi hệ quản trị với những ưu – nhược điểm riêng được dùng với những mục đích về lưu trữ và xử lý dữ liệu ở các mức độ khác nhau. Tuy nhiên nhìn chung với xu thế hiện nay hệ quản trị My SQL và SQL Server chiếm tỉ lệ cao trong các ứng dụng, đặc biệt là các ứng dụng web – đòi hỏi việc lưu trữ và xử lý dữ liệu kích thước lớn.
Yêu cầu cài đặt
Hiện tại hệ quản trị CSDL SQL Server 2005 có một số phiên bản với các yêu cầu về cấu hình máy như sau:
Enterprise: Không giới hạn về số lượng CPU và kích thước Database, không giới hạn RAM.
Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ tối đa 4CPU. Phiên bản này cũng không được trang bị một số tính năng cao cấp.
- 45 -
Workgroup: Tương tự như Standard nhưng chỉ hỗ trợ tối đa 2CPU và 3Gb RAM.
Express: Bản miễn phí hỗ trợ 1 CPU, 1 GB RAM và kích thước Database tối đa 4GB.
Trong đề tài này, tôi sử dụng hệ quản trị CSDL SQL Server 2005 Express vì đây là một hệ quản trị CSDL rất mạnh, dễ sử dụng, nhẹ, cài đặt dễ dàng và hoàn toàn miễn phí.
Để cài đặt SQL Server 2005 Express, trước hết máy tính phải cài MSXML 6.0.
3.2. Triển khai và thử nghiệm chƣơng trình3.2.1. Triển khai ứng dụng 3.2.1. Triển khai ứng dụng
Ứng dụng được triển khai trên máy tính cá nhân (sử dụng localhost).Để triển khai ứng dụng trên localhost, trước hết phải cài đặt IIS trên máy tính, sau đó cấu hình website trên Web server.
Sau khi hoàn tất, mở trình duyệt web và gõ vào địa chỉ :http://localhost. Giao diện trang web xuất hiện như hình dưới.
- 46 -
3.2.2. Thử nghiệm chƣơng trình
Hệ thống website được chia thành hai phần chức năng: Chức năng dành cho user và chức năng dành cho Admin.
a. Chức năng dành cho user
Các user chưa có tài khoản (khách)
Một người dùng khi chưa có tài khoản đăng nhập tại website sẽ có các chức năng sau:
+ Xem tất cả sản phẩm (trang chủ, sản phẩm, sản phẩm mới).
Hình 3.2. Giao diện trang sản phẩm
- 47 -
Hình 3.3. Tìm kiếm sản phẩm theo loại, giá, NCC
Hình 3.4. Tìm kiếm sản phẩm theo từ khóa
Xem thông tin chi tiết một sản phẩm.
Hình 3.5. Chi tiết sản phẩm
- 48 -
Hình 3.6. Trang đăng ký tài khoản
Tại đây người dùng nhập các thông tin đăng ký, trong đó có những trường bắt buộc như: tên đăng nhập, mật khẩu, email...
Các user đã có tài khoản (khách hàng)
Một người dùng sau khi đã đăng ký tài khoản tại website thì trở thành khách hàng và được phép sử dụng các chức năng dịch vụ của website (ngoài các chức năng đối với người chưa có tài khoản):
+ Đăng nhập
- 49 -
Nếu user đã có tài khoản nhưng quên mật khẩu thì nhấp vào link “quên mật khẩu” trên form đăng nhập. Một trang mới xuất hiện yêu cầu nhập email đã dùng để đăng ký. Sau đó hệ thống sẽ tự động gửi một email đến địa chỉ này, trong đó có ghi mật khẩu mới cấp. Ở lần đăng nhập tiếp theo, user đăng nhập bằng mật khẩu này.
Hình 3.8. Giao diện lấy lại mật khẩu
+ Chỉnh sửa hồ sơ cá nhân
Đối với chức năng này, user vào trang thông tin cá nhân rồi chọn đổi mật khẩu hoặc thay đổi thông tin.
Hình 3.9. Đổi mật khẩu
User cần phải nhập lại đúng mật khẩu cũ và mật khẩu mới.Sau khi hoàn tất, user có thể đăng nhập lại bằng mật khẩu mới.
- 50 -
Hình 3.10. Sửa thông tin cá nhân
User chọn đổi thông tin cá nhân để hoàn tất các phần còn thiếu khi đăng ký hoặc chỉnh sửa thông tin.Sau khi hoàn thành, click nút “Cập nhật”.
- 51 -
Hình 3.11. Đăng bình luận về sản phẩm
Mặc định email dùng để đăng bình luận của user là email dùng để đăng ký. Trong trường hợp user muốn dùng mail khác có thể ấn vào “Mail khác”. Nội dung của bình luận sẽ được gửi đến Server để chờ Admin xem xét và duyệt. Nếu bình luận có những nội dung không phù hợp thì sẽ không được duyệt.
- 52 -
Hình 3.12. Giỏ hàng
Tại trang chi tiết sản phẩm, nếu chọn được sản phẩm muốn mua, user click vào nút “thêm vào giỏ”, sau đó sẽ tự động chuyển đến trang giỏ hàng của user.Tại đây user có thể chọn tiếp tục mua hàng hoặc cập nhật lại số lượng sản phẩm, xóa bỏ một số hoặc tất cả sản phẩm trong giỏ hàng.Sau khi hoàn tất, user click nút “Thanh toán” để chuyển đến trang đặt hàng.
+ Xem các đơn hàng đã đặt
Hình 3.13. Lịch sử mua hàng
Khách hàng có thể xem lại tất cả các đơn hàng đã đặt thông qua lịch sử mua hàng, đồng thời cũng có thể tìm kiếm đơn hàng theo mã hoặc theo ngày đặt hàng.
- 53 -
Hình 3.14. Tìm kiếm đơn hàng theo mã
Hình 3.15. Tìm kiếm đơn hàng theo ngày đặt hàng