CƠ SỞ LÝ THUYẾT
Cơ sở dữ liệu MYSQL
2.1.1 Giới thiệu cơ sở dữ liệu
Cơ sở dữ liệu (Database) là một ứng dụng độc lập dùng để lưu trữ tập hợp dữ liệu Mỗi cơ sở dữ liệu đi kèm với một hoặc nhiều API riêng biệt, cho phép người dùng tạo, truy cập, quản lý, tìm kiếm và tái tạo dữ liệu mà nó chứa.
Các loại kho lưu trữ dữ liệu khác như file trên hệ thống file hoặc Hash Table lớn có thể được sử dụng, nhưng việc truy xuất và ghi dữ liệu từ những kho lưu trữ này không nhanh chóng và dễ dàng.
Ngày nay, chúng ta sử dụng Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) để lưu trữ và quản lý khối lượng lớn dữ liệu Cơ sở dữ liệu này được gọi là quan hệ vì dữ liệu được tổ chức trong các bảng khác nhau, với các mối quan hệ được thiết lập thông qua các khóa chính (Primary Key) và khóa ngoại (Foreign Key) MySQL Server cho phép chứa nhiều cơ sở dữ liệu, và có thể sử dụng hàm để chọn cơ sở dữ liệu mong muốn.
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, được ưa chuộng bởi các nhà phát triển ứng dụng nhờ vào tốc độ cao, tính ổn định và dễ sử dụng Với khả năng hoạt động trên nhiều hệ điều hành và cung cấp nhiều hàm tiện ích mạnh mẽ, MySQL là sự lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu trên internet Đặc biệt, MySQL hoàn toàn miễn phí, cho phép người dùng tải về từ trang chủ.
It is available in multiple versions for various operating systems, including Win32 for Windows, as well as Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, and SunOS.
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ phổ biến, sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) Nó hỗ trợ nhiều ngôn ngữ lập trình như PHP và Perl, cung cấp nơi lưu trữ thông tin cho các trang web Người dùng và ứng dụng có thể tương tác với cơ sở dữ liệu thông qua SQL, cho phép truy vấn thông tin và thu thập dữ liệu để lập báo cáo hiệu quả.
Một đặc điểm quan trọng của cơ sở dữ liệu quan hệ là tính dễ mở rộng, cho phép thêm tập dữ liệu mới mà không cần thay đổi chương trình ứng dụng Cơ sở dữ liệu này bao gồm các bảng chứa dữ liệu, tương ứng với các mục dữ liệu đã được định nghĩa Mỗi bảng (hay quan hệ) chứa nhiều mục dữ liệu trong các cột, với mỗi dòng đại diện cho một thể hiện duy nhất của dữ liệu Người sử dụng có thể nhận được các view khác nhau từ cơ sở dữ liệu, tùy thuộc vào yêu cầu kết xuất dữ liệu của họ.
2.1.2 Ưu điểm của cơ sở dữ liệu
- Giảm sự trùng lặp thông tin xuống mức thấp nhất Do đó đảm bảo thông tin có tính nhất quán và toàn vẹn dữ liệu
- Đảm bảo dữ liệu có thể đƣợc truy xuất theo nhiều cách khác nhau
- Nhiều người có thể sử dụng một cơ sở dữ liệu
Tính chủ quyền của dữ liệu:
- Thể hiện ở phương diện an toàn dữ liệu
- Khả năng biểu diễn mỗi liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu
- Người khai thác cơ sở dữ liệu phải cập nhật cho CSDL những thông tin mới nhất
Tính bảo mật và quyền khai thác thông tin của người sử dụng:
- Do ưu điểm CSDL có thể cho nhiều người khai thác đồng thời nên cần phải có một cơ chế bảo mật phân quyền khai thác CSDL
- Các hệ điều hành nhiều người sử dụng hay cục bộ đều cung cấp cơ chế này
- Khi nhiều người cùng truy nhập CSDL với các mục đích khác nhau Rất có thể sẽ xảy ra hiện tƣợng tranh chấp dữ liệu
- Cần có cơ chế ƣu tiên khi truy cập CSDL Ví dụ: admin luôn có thể truy cập cơ sở dữ liệu
- Cấp quyền ưu tiên cho từng người khai thác
Cần đảm bảo an toàn dữ liệu khi có sự cố:
Khi cơ sở dữ liệu (CSDL) được quản lý tập trung và có khối lượng lớn, nguy cơ mất dữ liệu trở nên cao Các nguyên nhân chủ yếu dẫn đến tình trạng này bao gồm sự cố mất điện đột ngột và hỏng hóc thiết bị lưu trữ.
- Hiện tại có một số hệ điều hành đã có cơ chế tự động sao lưu ổ cứng và fix lỗi khi có sự cố xảy ra
- Tuy nhiên: cẩn tắc vô áy náy Chúng ta nên sao lưu dự phòng cho dữ liệu đề phòng trường hợp xấu xảy ra
- Phản ánh 1 phần của thế giới thực (mini world) đƣợc cập nhật phản ánh sự thay đổi của thế giới nó biểu diễn
- 1 CSDL là 1 tập hợp DL liên kết với nhau 1 cách logic và mang 1 ý nghĩa nào đó
- Được thiết kế phổ biến cho 1 mục đích riêng có nhóm người sử dụng
2.1.5 Tổ chức cơ sở dữ liệu
CSDL đƣợc tổ chức có cấu trúc
- Các DL lưu trữ có cấu trúc thành các bản ghi (record), các trường DL (field)
- Các DL lưu trữ có mối quan hệ (relational) với nhau
- Khả năng truy xuất thông tin từ CSDL Dễ dàng truy cập, quản lí, cập nhật DL
Cơ sở dữ liệu đƣợc phân chia ra nhiều loại khác nhau:
Cơ sở dữ liệu dạng file là loại dữ liệu được lưu trữ dưới dạng các file, bao gồm các định dạng như text, ASCII và *.dbf Một ví dụ tiêu biểu cho cơ sở dữ liệu dạng file là *.mdb trong Foxpro.
Cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong các bảng, được gọi là thực thể, với các mối liên hệ giữa chúng được gọi là quan hệ Mỗi quan hệ bao gồm nhiều thuộc tính, trong đó có một thuộc tính quan trọng là khóa chính Một số hệ quản trị hỗ trợ cơ sở dữ liệu quan hệ phổ biến bao gồm MS SQL Server, Oracle và MySQL.
Cơ sở dữ liệu hướng đối tượng lưu trữ dữ liệu trong các bảng, đồng thời bổ sung các tính năng hướng đối tượng như lưu trữ hành vi để thể hiện đặc điểm của đối tượng Mỗi bảng được xem như một lớp dữ liệu, trong đó mỗi dòng dữ liệu đại diện cho một đối tượng Một số hệ quản trị cơ sở dữ liệu hỗ trợ kiểu dữ liệu này bao gồm MS SQL Server, Oracle và Postgres.
Cơ sở dữ liệu bán cấu trúc lưu trữ dữ liệu dưới dạng XML, trong đó thông tin được mô tả qua các thẻ Với khả năng lưu trữ hầu hết các loại dữ liệu khác nhau, cơ sở dữ liệu bán cấu trúc mang lại nhiều ưu điểm và đang trở thành xu hướng mới trong nghiên cứu và ứng dụng.
2.1.7 Mục đích sử dụng cơ sở dữ liệu
- Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage), truy cập (accessibility), tổ chức (organization) và xử lí(manipulation)
Lưu trữ dữ liệu có thể thực hiện trên đĩa và cho phép chuyển đổi giữa các cơ sở dữ liệu khác nhau Đối với quy mô nhỏ, bạn có thể lựa chọn các cơ sở dữ liệu như Microsoft Excel, Microsoft Access, MySQL, hoặc Microsoft Visual FoxPro Trong khi đó, nếu ứng dụng của bạn có quy mô lớn, các giải pháp như Oracle hay SQL Server sẽ là lựa chọn phù hợp hơn.
Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng, cho phép người dùng tương tác với cơ sở dữ liệu một cách hiệu quả Ở mức độ cục bộ, việc truy cập cơ sở dữ liệu diễn ra ngay trong chính hệ thống để trao đổi và xử lý dữ liệu Tuy nhiên, khi nhu cầu vượt ra ngoài phạm vi của một cơ sở dữ liệu đơn lẻ, cần thiết phải có các phương thức truy cập dữ liệu giữa các hệ thống khác nhau, chẳng hạn như kết nối Microsoft Access với SQL Server hoặc SQL Server với cơ sở dữ liệu Oracle.
Tổ chức cơ sở dữ liệu phụ thuộc vào mô hình và đặc điểm của từng ứng dụng, vì vậy việc phân tích và thiết kế cơ sở dữ liệu là rất quan trọng Để tối ưu hóa quá trình truy cập và xử lý, cần tuân thủ các tiêu chuẩn của hệ thống cơ sở dữ liệu trong việc tổ chức dữ liệu.
Lập trình PHP
PHP, viết tắt của "PHP: Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản chủ yếu được sử dụng để phát triển các ứng dụng trên máy chủ Webserver Đây là một ngôn ngữ mã nguồn mở, phục vụ cho nhiều mục đích khác nhau trong phát triển web.
PHP được phát triển chủ yếu cho ứng dụng web, cho phép dễ dàng nhúng mã vào HTML Với tốc độ nhanh, kích thước nhỏ gọn, cú pháp tương tự như C và dễ học, PHP giúp rút ngắn thời gian xây dựng sản phẩm so với các ngôn ngữ khác, nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến.
PHP là ngôn ngữ lập trình dạng script được phát triển chủ yếu bởi cộng đồng và Zend Inc., công ty do các nhà phát triển cốt lõi của PHP sáng lập Nó được sử dụng để thực thi trên webserver, giúp tạo ra các trang web động.
PHP khởi đầu như một dự án mã nguồn mở nhỏ, nhưng nhanh chóng trở nên hữu ích và phổ biến Được phát triển từ sản phẩm PHP/FI do Rasmus Lerdorf tạo ra vào năm 1994, PHP/FI ban đầu chỉ là một tập con đơn giản của mã kịch bản Perl để theo dõi truy cập vào bản sơ yếu lý lịch của ông Rasmus đã đặt tên cho nó là "Personal Home Page Tools" Khi cần thêm chức năng, ông đã phát triển một bộ thực thi lớn hơn bằng C để truy vấn cơ sở dữ liệu và hỗ trợ người dùng tạo ra các ứng dụng web đơn giản Cuối cùng, Rasmus quyết định công bố mã nguồn của PHP/FI để mọi người có thể xem, sử dụng, sửa lỗi và cải tiến.
PHP là ngôn ngữ lập trình kịch bản phía máy chủ, được nhúng trong HTML, thường được sử dụng để quản lý nội dung động, cơ sở dữ liệu và theo dõi phiên Nó tương thích với nhiều hệ quản trị cơ sở dữ liệu phổ biến như MySQL, PostgreSQL và Microsoft SQL Server PHP hoạt động hiệu quả, đặc biệt khi được biên dịch như một module Apache trên hệ điều hành Unix, cho phép thực thi các truy vấn phức tạp với tốc độ nhanh Ngoài ra, PHP hỗ trợ nhiều giao thức như POP3, IMAP và LDAP, và phiên bản PHP4 còn cung cấp hỗ trợ cho Java và các cấu trúc đối tượng phân phối Khi người dùng yêu cầu xem một trang web tĩnh, máy chủ chỉ cần gửi nội dung HTML, trong khi đối với trang PHP, máy chủ sẽ chuyển đổi mã nguồn PHP thành HTML trước khi gửi đến trình duyệt, vì trình duyệt chỉ có thể đọc mã nguồn HTML.
Trong chương tới, chúng ta sẽ tìm hiểu cách cài đặt môi trường PHP trên máy tính, đồng thời thảo luận về các khái niệm cơ bản liên quan đến PHP.
2.2.2 Lịch sử phát triển của PHP
PHP được phát triển từ sản phẩm PHP/FI do Rasmus Lerdorf tạo ra vào năm 1994, ban đầu chỉ là một tập hợp mã kịch bản đơn giản dựa trên Perl để theo dõi lượt truy cập vào trang cá nhân của ông Bộ mã này được gọi là 'Personal Home Page Tools' Khi nhu cầu về các chức năng phức tạp hơn gia tăng, Rasmus đã phát triển một bộ thực thi bằng C để hỗ trợ truy vấn cơ sở dữ liệu và phát triển ứng dụng web đơn giản Ông đã quyết định công bố mã nguồn của PHP/FI để mọi người có thể xem, sử dụng, sửa lỗi và cải tiến mã nguồn.
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta đƣợc biết ngày nay Nó đã đƣợc Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó Lý do chính mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 nhƣ là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Vào mùa đông năm 1998, sau khi PHP 3.0 ra mắt, Andi Gutmans và Zeev Suraski bắt đầu viết lại phần lõi của PHP với mục tiêu cải thiện tốc độ xử lý ứng dụng phức tạp và nâng cao tính mô đun của mã nguồn Dù PHP 3.0 hỗ trợ nhiều tính năng mới cùng với các cơ sở dữ liệu và API của bên thứ ba, nhưng nó không được thiết kế để xử lý hiệu quả các ứng dụng phức tạp.
Sự thành công của PHP 4.0 đã thúc đẩy nhóm phát triển nhận ra những hạn chế của nó, đặc biệt là trong hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, và giao thức máy khách mới của MySQL 4.1 và 5.0 Để khắc phục những điểm yếu này, Zeev và Andi đã phát triển Zend Engine 2.0, nền tảng của PHP 5.0 Mặc dù việc phát triển PHP 5.0 có thể đã bắt đầu từ tháng 12 năm 2002, nhưng các bài phỏng vấn liên quan đã xuất hiện từ tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 được công bố để cộng đồng kiểm nghiệm, đánh dấu phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 ra mắt vào tháng 10 năm 2003, giới thiệu hai tính năng được mong đợi là Iterators và Reflection, trong khi tính năng gây tranh cãi namespaces đã bị loại khỏi mã nguồn.
Phiên bản tiếp theo của PHP, PHP 6, đang trong quá trình phát triển và có thể tải xuống tại http://snaps.php.net Phiên bản này hứa hẹn sẽ khắc phục những hạn chế của phiên bản hiện tại, bao gồm hỗ trợ namespace, Unicode, và sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, trong khi các API cũ sẽ được chuyển thành thư viện PECL.
2.2.3 Sự hưởng ứng PHP ở Việt Nam
Mặc dù PHP 5 đã được coi là phù hợp cho doanh nghiệp, việc chấp nhận PHP ở Việt Nam vẫn diễn ra chậm chạp Để thúc đẩy việc phổ biến PHP, dự án xây dựng Quy tắc viết mã PHP tiếng Việt đã được khởi xướng Vào ngày 24 tháng 10 năm 2004, nhóm PHPVietnam đã thành lập Mailing List đầu tiên trên Google Groups tại địa chỉ http://groups-beta.google.com/group/phpvietnam, nơi diễn ra các thảo luận nhằm xây dựng diễn đàn cho cộng đồng PHP Việt Nam.
2.2.4 Tại sao nên dùng PHP Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấu hình và tính năng khác nhau nhƣng chúng vẵn đƣa ra những kết quả giống nhau Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl và một số loại khác nữa Vậy tại sao chúng ta lại nên chọn PHP Rất đơn giản, có những lí do sau mà khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này
PHP đƣợc sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác
PHP là một ngôn ngữ lập trình mạnh mẽ, có khả năng tích hợp tốt với hầu hết các cơ sở dữ liệu hiện có, mang lại tính linh hoạt, bền vững và khả năng phát triển không giới hạn Đặc biệt, PHP là mã nguồn mở, cho phép người dùng truy cập miễn phí tất cả các tính năng của nó Sự phát triển liên tục từ cộng đồng lập trình viên cũng giúp cải tiến và khắc phục lỗi, nâng cao hiệu suất cho các ứng dụng web.
PHP là ngôn ngữ lập trình dễ tiếp cận cho người mới, đồng thời cũng đáp ứng tốt nhu cầu của lập trình viên chuyên nghiệp, cho phép hiện thực hóa mọi ý tưởng một cách xuất sắc.
PHÂN TÍCH HỆ THỐNG VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Phân tích các nhóm chức năng của hệ thống
Các tác nhân của hệ thống gồm có:
Administrator là thành viên quản trị của hệ thống, đảm nhận các quyền và chức năng quan trọng như tạo tài khoản, quản lý sản phẩm, quản trị người dùng và quản lý hóa đơn.
Hệ thống thành viên cung cấp các chức năng như đăng ký, đăng nhập, tìm kiếm, và quản lý thông tin cá nhân Người dùng có thể xem giỏ hàng, đặt hàng và kiểm tra thông tin về các hóa đơn đã lập.
Customer: Là khách vãng lai có chức năng: Đăng kí, tìm kiếm, xem thông tin sản phẩm, xem giỏ hàng, đặt hàng Đăng nhập
Xem hóa đơn mua hàng
Thêm, sửa, xóa thông tin sản phẩm
Chuyển đơn hàng chưa thanh toán->Đã thanh toán Đăng kí thành viên Customer
Tìm kiếm thông tin về sản phẩm
Xem thông tin về sản phẩm
Liệt kê, tìm kiếm hóa đơn
Xem Lịch sử giao dịch (HĐ đã lập) Đổi mật khẩu
Thêm sản phẩm vào giỏ hàng Đăng nhập Đặt hàng
Thêm hãng Đăng kí thành viên Xem giỏ hàng
Sửa thông tin sản phẩm
Liệt kê, cấp quyền, xoá User
Hình 1 Biểu đồ Use Case
3.1.1 Các chức năng của đối tượng Customer (Khách vãng lai)
Khi tham gia vào hệ thống, người dùng có thể dễ dàng truy cập thông tin, tìm kiếm sản phẩm, đăng ký thành viên, thêm sản phẩm vào giỏ hàng, xem giỏ hàng và thực hiện đặt hàng.
3.1.1.1 Chức năng đăng ký thành viên
Đăng ký làm thành viên giúp khách vãng lai tận hưởng nhiều chức năng ưu việt trong việc mua bán sản phẩm và xây dựng mối quan hệ bền vững với công ty Thành viên sẽ được hưởng những chương trình khuyến mãi đặc biệt, mang lại nhiều lợi ích hấp dẫn.
Input: Khách vãng lai phải nhập đầy đủ các thông tin (*: là thông tin bắt buộc)
Tên đăng nhập: (*) Mật khẩu: (*) Nhập lại mật khẩu (*)
Họ và tên: Nhập họ và tên (*) Email: nhập email (*) Địa chỉ: Nhập địa chỉ của Member (*) Điện thoại: Nhập điện thoại (*)
Nhập mã an toàn để bắt đầu quá trình kiểm tra thông tin Nếu thông tin được nhập chính xác, hệ thống sẽ lưu trữ vào cơ sở dữ liệu (CSDL) và thêm thông tin của thành viên vào CSDL.
Output: Đƣa ra thông báo đăng ký thành công hoặc yêu cầu nhập lại nếu thông tin không hợp lệ
3.1.1.2 Chức năng tìm kiếm sản phẩm
+ Input: Nhập vào hoặc lựa chọn thông tin tìm kiếm theo Hãng, theo Giá, theo tên sản phẩm, theo chủng loại…
+ Process: Lấy thông tin sản phẩm từ CSDL theo các trường tìm kiếm
+ Output: Hiện chi tiết thông tin sản phẩm thỏa mãn yêu cầu tìm kiếm
3.1.1.3 Chức năng xem thông tin sản phẩm
+ Description: Cho phép xem chi tiết thông tin của sản phẩm
+ Input: Chọn sản phẩm cần xem
+ Process: Lấy thông tin sản phẩm từ CSDL thông qua ID
+ Output: Hiện chi tiết thông tin sản phẩm
+ Description: Cho phép xem chi tiết giỏ hàng
+ Input: Click chọn vào giỏ hàng
Quá trình lấy thông tin sản phẩm từ cơ sở dữ liệu diễn ra thông qua ID ID này được lấy từ biến session, trong đó lưu trữ thông tin về mã sản phẩm và số lượng của từng sản phẩm mà khách hàng đã chọn cho giỏ hàng.
+ Output: Hiển thị thông tin về tên sản phẩm, ảnh, đơn giá, số lƣợng, thành tiền, tổng tiền của sản phẩm
+ Description: Cho phép tất cả các khách hàng có thể đặt hàng mà không cần phải là thành viên của hệ thống
Sau khi kiểm tra giỏ hàng, khách hàng có thể đặt hàng trực tuyến bằng cách nhấn nút đặt hàng và cung cấp thông tin cần thiết Điều này giúp người quản trị xác nhận thông tin và giao hàng nhanh chóng đến địa chỉ đúng.
+ Process: Lưu thông tin về khách hàng và thông tin hóa đơn đặt hàng vào các bảng trong cơ sở dữ liệu
+ Output: Đƣa ra thông báo đơn đặt hàng đã đƣợc lập thành công hoặc không thành công
3.1.2 Các chức năng của đối tượng Member (thành viên)
Thành viên có tất cả các chức năng giống nhƣ khách vãng lai và còn có thêm một số chức năng khác nhƣ:
+ Description: Cho Member login vào hệ thống
Người dùng cần nhập thông tin username và password để thực hiện đăng nhập Hệ thống sẽ kiểm tra và so sánh các thông tin này với dữ liệu có sẵn trong cơ sở dữ liệu (CSDL) để xác nhận tính chính xác.
Nếu thông tin đăng nhập chính xác, hệ thống sẽ hiển thị các chức năng của thành viên; ngược lại, nếu thông tin không đúng, người dùng sẽ nhận được thông báo yêu cầu nhập lại.
+ Description: Cho phép người dùng đăng xuất khỏi hệ thống khi không còn nhu cầu sử dụng hệ thống
+ Input: Người dùng click vào nút thoát trên hệ thống
+ Process: Tiến hành xóa session lưu thông tin đăng nhập để dừng phiên làm việc của tài khoản Member trong hệ thống
+ Output: Quay trở lại trang hiện hành Ẩn hết các chức năng của Member
3.1.2.3 Chức năng đổi mật khẩu
+ Description: Cho phép thay đổi mật khẩu
+ Input: Người dùng điền thông tin mật khẩu cũ và mới
+ Process: Kiểm tra thông tin người dùng nhập vào Nếu đúng thì cập nhật các thông tin mới, ngƣợc lại thì không
+ Output: Hiển thị thông báo thành công nếu thông tin nhập vào chính xác hoặc hiển thị thông báo yêu cầu nhập lại nếu thông tin không chính xác
3.1.2.4 Chức năng xem hóa đơn đã được lập
+ Description: Cho phép Member xem các hóa đơn mua hàng của mình
+ Input: Click chọn lịch sử giao dịch trên menu của Member
+ Process: Gọi trang hiển thị thông tin hóa đơn đã đƣợc lập của Member đó + Output: Hiển thị thông tin chi tiết các hóa đơn
3.1.3.1 Các chức năng quản lý Member
+ Description: Giúp Admin có thể xóa Member ra khỏi CSDL
+ Input: Chọn Member cần xóa
+ Process: Lấy các thông tin của Member và hiển thị ra màn hình để chắc chắn rằng Admin xóa đúng Member cần thiết
+ Output: Load lại danh sách Member để biết đƣợc đã xoá thành công Member ra khỏi CSDL
3.1.3.2 Các chức năng quản lý Sản phẩm
Chức năng chỉnh sửa thông tin sản phẩm:
+ Description: Giúp Admin thay đổi thông tin của sản phẩm đã có trong CSDL + Input: Admin nhập thông tin mới của sản phẩm
+ Process: Cập nhật thông tin mới cho sản phẩm
+ Output: Hiển thị thông báo đã cập nhật sản phẩm
Chức năng xoá sản phẩm:
+ Description: Giúp Admin có thể xoá sản phẩm
+ Input: Chọn sản phẩm cần xoá
+ Output: Load lại danh sách sản phẩm
Chức năng thêm sản phẩm:
+ Description: Giúp Admin có thể thêm sản phẩm mới
+ Input: Admin nhập vào những thông tin cần thiết của sản phẩm mới
+ Process: Kiểm tra xem những trường nào không được để trống Nếu tất cả đều phù hợp thì thêm vào database Ngƣợc lại thì không thêm vào database
+ Output: Load lại danh sách sản phẩm để xem sản phẩm mới đã đƣợc thêm vào CSDL
Chức năng khuyến mại đối với sản phẩm:
+ Description: Giúp Admin có thể gán cho sản phẩm một chương trình khuyến Mại
+ Input: Chọn hãng của sản phẩm và tên của sản phẩm
+ Process: Thêm thông tin khuyến mại vào trong CSDL
+ Output: Load lại danh sách sản phẩm để xem thông tin khuyến mại vừa đƣa vào
3.1.3.3 Các chức năng quản trị người dùng
Chức năng xoá với người dùng:
+ Description: Giúp Admin có thể xoá người dùng
+ Input: Tìm User cần xoá và chọn biểu tƣợng xoá
+ Process: Xoá User ra khỏi CSDL
+ Output: Load lại danh sách người dùng để xem thông tin vừa thay đổi
3.1.3.4 Các Chức Năng Đối Với Hóa Đơn Đặt Hàng
Chức năng xem thông tin chi tiết các đơn đặt hàng (đang chờ đƣợc xử lý, đang xử lý, đã hoàn thành, hoặc hoá đơn bị huỷ bỏ):
+ Description: Xem chi tiết đơn đặt hàng có trong CSDL
+ Input: Chọn tên hoá đơn hoặc tên khách hàng của hoá đơn đó
+ Process: Lấy toàn bộ thông tin chi tiết của đơn đặt hàng có trong CSDL
+ Output: Hiển thị chi tiết thông tin trong đơn đặt hàng
Chức năng chuyển các đơn đặt hàng chưa thanh toán thành hóa đơn đã thanh toán:
Sau khi khách hàng xác nhận đặt hàng, hóa đơn sẽ được lưu trữ trong cơ sở dữ liệu Admin sẽ gọi điện để xác nhận thông tin với khách hàng Nếu thông tin đúng, hóa đơn sẽ được chuyển đến bộ phận giao hàng Sau khi giao dịch thành công, hóa đơn sẽ được hoàn tất Trong suốt quá trình xử lý, khách hàng có quyền hủy bỏ đơn hàng nếu cần.
+ Input: Admin chọn những hoá đơn cần xử lý
+ Process: Xứ lý thay đổi của hoá đơn
+ Output: Load lại danh sách hoá đơn để xem lại sự thay đổi của hoá đơn.
Cơ sở dữ liệu
3.2.1 Cách tổ chức dữ liệu và thiết kế chương trình cho trang Web
Việc tổ chức dữ liệu trên trang Web cần đáp ứng các yêu cầu phân tích để tạo giao diện dễ nhìn và thu hút khách hàng Một phương pháp phổ biến là quản lý theo nhóm sản phẩm, với mỗi nhóm được xác định bằng mã và tên riêng Trên Website này, các sản phẩm sẽ được liên kết với mã hãng và mã loại sản phẩm, trong đó mã này giữ vai trò khóa chính trong bảng dữ liệu Dưới đây là một số bảng cơ sở dữ liệu quan trọng trong toàn bộ hệ thống.
Bảng 3.1 giohang (Dùng để lưu thông tin về giỏ hàng của khách hàng)
Name Type Null Chú thích
Id_giohang Int(10) No Mã giỏ hang
Id Int(10) No Mã sản phẩm
User Varchar(255) No Tên user
Soluong Int(10) No Số lƣợng
Tinhtrang Text No Tình trạng
Ngaydat Datetime No Ngày đặt hang
Bảng 3.2 hoadon (Dùng để lưu thông tin về đơn hàng)
Name Type Null Chú thích
Id-hoadon Int(10) No Mã hóa đơn
Hoten Varchar(255) No Tên khách hàng
Diachi Text No Địa chỉ
Dienthoai Int(20) No Điện thoại
Cty Varchar(255) No Công ty
Id Int(10) No Mã sản phẩm
Soluong Int(10) No Số lƣợng
Bảng 3.3 lienhe (Dùng để quản lí các thắc mắc liên hệ của khách hàng)
Name Type Null Chú thích
Id-lienhe Int(10) No Mã liên hệ
Hoten Text No Họ tên
Cty Text No Công ty
Dienthoai Int(20) No Điện thoại
Diachi Text No Địa chỉ
Noidung Text No Nội dung
Ngaylienhe Datetime No Ngày liên hệ
Bảng 3.4 loaisanpham (Dùng để quản lí danh mục loại sản phẩm)
Name Type Null Chú thích
Id-loai Int(10) No Mã loại sp
Id_nhom Int(11) No Mã nhóm sản phẩm
Tenloaisp Text No Tên loại sản phẩm
Ghichu Varchar(255) No Ghi chú
Bảng 3.5 nhomsanpham (Dùng để quản lý nhóm sản phẩm)
Name Type Null Chú thich
Id_nhom Int(10) No Mã nhóm sản phẩm
Tennhom Varchar(255) No Tên nhóm sản phẩm
Chuthich Text No Chú thích
Bảng 3.6 sanpham (Dùng để quản lý sản phẩm)
Name Type Null Chú thích
Id Int(20) No Mã sản phẩm
Id_loai Int(10) No Mã loại sản phẩm
Tensp Text No Tên sản phẩm
Mota Text No Mô tả
Hinh Text No Hình ảnh
Gia Int(15) No Đơn giá
Ghichu Text No Ghi chú
Soluongban Int(10) No Số lƣợng
Id_menu Int(10) No Mã menu
Bảng 3.7 thanhvien (Dùng để quản lý thành viên)
Name Type Null Chú thích
Hoten Varchar(255) No Họ tên
Diachi Varchar(255) No Địa chỉ
Dienthoai Int(20) No Điện thoại
User Varchar(255) No Tên đăng nhập
Hieuluc Int(10) No Hiệu lực
3.2.2 Sơ đồ thực thể liên kết
3.2.3 Yêu cầu về bảo mật
Hệ thống có tính bảo mật cao, chỉ cho phép Admin thực hiện các thay đổi về thông tin sản phẩm và toàn bộ Website Người dùng chỉ có thể chỉnh sửa thông tin cá nhân của mình khi có username và password hợp lệ Điều này giúp quản lý dữ liệu hiệu quả và an toàn.
Các thông tin của khách hàng đƣợc bảo mật
Hệ thống quản trị an toàn tuyệt đối, không thể bị truy cập do lỗi Các biểu đồ Use Case và biểu đồ hoạt động đã thể hiện chức năng của các tác nhân và cách hệ thống hoạt động Dựa trên hệ thống hiện tại và yêu cầu từ khách hàng, cần xây dựng trang web với đầy đủ chức năng cho người quản trị và người dùng, đồng thời đảm bảo tính bảo mật cao.
Biểu đồ phân tích thiết kế hệ thống
3.3.1 Sơ đồ phân cấp chứng năng
3.3.1.1 Sơ đồ phân cấp chức năng phía backend
Cập nhật đơn hàng Cập nhật người dùng
Hỗ trợ tƣ vấn khách hàng
Cập nhật chuyên mục sản phẩm
Cập nhật phong cách sản phẩm
3.3.1.2 Sơ đồ phân cấp chức năng phía frontend
Sơ đồ phân cấp chức năng đối phía frontend
QL Sản phẩm QL Tài khoản
In đơn hàng Đăng nhập
Xem thông tin tài khoản Đặt mua
3.3.2 Biều đồ luồng dữ liệu
3.3.2.1 Biểu đồ luồng dữ liệu ở mức ngữ cảnh
Biểu đồ luồng dữ liệu ở mức ngữ cảnh
Kết quả đăng ký Thông tin đăng ký Thông tin xác nhận Thông tin đăng ký Thông tin tài khoản Yêu cầu xem thông tin tài khoản
3.3.2.2 Biểu đồ luồng dữ liệu ở mức đỉnh
Thông tin đăng ký TRỊ
Y/C xem thông tin tài khoản
Thông tin cập nhật TK Thông tin mới
Thông tin cập nhật Thông tin mới Đăng nhập Xác nhận đăng nhập
Thông tin cập nhật người dùng
Thông tin mới người dùng Đăng nhập
Yêu cầu xem, chuyển khoản Thông tin cần tìm kiếm
Kết quả hiển thị Thông tin sản phẩm
Thông tin cần tìm kiếm
Yêu cầu tìm kiếm Thông tin mới Thông tin cập nhật
3.3.2.3 Biểu đồ luồng định nghĩa chức năng quản lý sản phẩm
TÌM KIẾM SẢN PHẨM ĐẶT HÀNG
Yêu cầu thống kê in ấn Kết quả
Yêu cầu tìm kiếm Kết quả tìm kiếm
Xác nhận thông tin đơn hàng
Thông tin mới Yêu cầu thêm, sửa đổi, xóa
Thông tin sản phẩm Hiện thông tin sản phẩm
DS đơn hàng Danh sách sản phẩm
3.3.2.4 Biểu đồ luồng định nghĩa chức năng quản lý tài khoản
Thông tin cập nhật tài khoản
Thông tin mới Thông tin cập nhật tài khoản
Thông tin chuyển khoản Kết quả
Yêu cầu xem tài khoản
Yêu cầu xem tài khoản
Thông tin tài khoản Danh sách tài khoản
3.3.2.5 Biểu đồ luồng định nghĩa chức năng quản lý đơn đặt hàng
Xác nhận thông tin mua hàng Thông tin đơn hàng
Yêu cầu in đơn hàng
Yêu cầu in đơn hàng
Yêu cầu danh sách đơn hàng Kết quả
3.3.2.6 Biểu đồ luồng định nghĩa chức năng quản lý đăng nhập
Quản lý đăng nhập người dùng
CẬP NHẬT NGƯỜI DÙNG ĐĂNG NHẬP KHÁCH
Thông tin mới Yêu cầu sửa thông tin
Yêu cầu mật khẩu mới
Danh sách người dùng Yêu cầu danh sách đơn hàng
Yêu cầu thêm, sửa đổi, xóa
MỘT SỐ GIAO DIỆN WEBSITE KINH DOANH ĐIỆN THOẠI DI ĐỘNG VÀ PHỤ KIỆN TRỰC TUYẾN
Trang chủ “Index.php”: Là trang chính, chứa tất cả các mục để lựa chọn Từ trang chủ khách hàng có thể tìm thấy mọi thông tin cần thiết:
Các sản phẩm được thiết kế với giao diện thân thiện và dễ sử dụng, giúp khách hàng dễ dàng tìm kiếm và đặt mua những món đồ yêu thích, phù hợp với ngân sách của mình.
- Các bài viết hay về thể giới máy tính đƣợc quản trị hệ thống chọn lọc
- Bạn có thắc mắc, góp ý với công ty…
2 Giao diện Form đăng nhập
Trang "login.php" cho phép khách hàng nhập tên người dùng và mật khẩu để đăng nhập vào website Nếu chưa có tài khoản, khách hàng có thể nhấn vào nút Đăng ký để tạo tài khoản mới.
3 Giao diện Form liên hệ
Trang "lienhe.php" đóng vai trò quan trọng trong việc kết nối khách hàng với cửa hàng, cho phép khách hàng gửi thắc mắc và ý kiến của mình Để sử dụng tính năng này, khách hàng cần điền đầy đủ thông tin cá nhân vào mẫu form được cung cấp.
4.Giao diện Form đăng ký thành viên
Trang “register.php” cho phép khách hàng điền thông tin cá nhân và đăng ký tài khoản, giúp họ thực hiện các giao dịch mua hàng trên website một cách dễ dàng.
Trang quản trị là khu vực dành riêng cho quản trị viên của cửa hàng, cung cấp đầy đủ các tính năng như quản lý sản phẩm, thành viên và đơn đặt hàng, giúp tối ưu hóa quy trình vận hành.