CHƯƠNG 4 : THIẾT KẾ HỆ THỐNG
2. Thu thập các biểu mẫu (hóa đơn, biểu mẫu quy định, văn bản nhà hàng)
2.7. Đơn xin nghỉ bù
về sớm, ta sẽ xác định được thực thể NHÂN VIÊN
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
Để đáp ứng được nhóm chức năng Quản lý tài khoản, ta cần bổ sung các thực thể ĐĂNG NHẬP với các thuộc tính Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
Dựa vào [Biểu mẫu 2.11] - Giấy đề nghị cấp nguyên vật liệu, ta xác định được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU định được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU
(5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính.
→ Bổ sung thuộc tính Trạng thái yêu cầu. Thuộc tính này nhận những giá trị để mô tả cho bảng NHẬP NGUYÊN LIỆU này đang ở trạng thái nào. Cụ thể trong bài toán này gồm các trạng thái: Được xác nhận, Chưa được xác nhận
→ (6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
Dựa vào [Biểu mẫu 2.12] - Giấy order đồ ăn và quy trình order đồ ăn cho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER cho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER
(7) PHIẾU ORDER: Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món,
Số lượng
Dựa vào [Biểu mẫu 2.15] - Một số hình ảnh menu của nhà hàng, ta sẽ xác định được thực thể MÓN ĂN xác định được thực thể MÓN ĂN
81
⇒(8) MÓN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
KẾT LUẬN CÁC THỰC THỂ VÀ THUỘC TÍNH:
(1) KHÁCH HÀNG: Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
(2) HÓA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá,
Thành tiền, Tổng cộng, Chiết khấu, Tiền đặt trước, Tổng tiền giảm, Khách hàng phải trả, Tiền khách đưa, Tiền trả lại khách, Nhân viên thanh toán
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
(7) PHIẾU ORDER: Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món,
Số lượng
(8) MĨN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
❖ Xác định mối liên kết giữa các thực thể
Thực thể KHÁCH HÀNG và thực thể HĨA ĐƠN có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể HĨA ĐƠN có kiểu liên kết 1 – N Thực thể NHÂN VIÊN và thực thể ĐĂNG NHẬP có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết 1 – N
Thực thể NGUYÊN LIỆU và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết N – M
Thực thể NGUYÊN LIỆU và thực thể MĨN ĂN có kiểu liên kết N – M
82
Thực thể MĨN ĂN và thực thể PHIẾU ORDER có kiểu liên kết N – M
Thực thể HÓA ĐƠN và thực thể PHIẾU ORDER có kiểu liên kết N - M
❖ Chuẩn hóa ERD mở rộng
Hình 43. ERD mở rộng
3.2.1.2. Chuyển từ ERD mở rộng về ERD kinh điển
❖ Xét thực thể và thuộc tính khóa
KHÁCH HÀNG: Mã khách hàng là khóa chính.
Vì các thuộc tính Họ tên, Ngày sinh, Địa chỉ là thuộc tính mơ tả. Thuộc tính Số điện thoại và thuộc tính Email xác định tính duy nhất (có thể làm khố) nhưng vì nó q dài. Để dễ quản lý thì nhóm em xin chọn thêm thuộc tính Mã khách hàng để làm khóa chính.
HĨA ĐƠN: Số hóa đơn là khóa chính
Vì các thuộc tính Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh tốn là thuộc tính mơ tả, thuộc tính Thành tiền, Tổng cộng, Tổng tiền giảm, Khách hàng phải trả,
83
Tiền trả lại khách là thuộc tính suy dẫn, và thuộc tính Số hóa đơn thể hiện tính duy nhất. Do đó, chúng ta chọn Số hóa đơn là khóa chính.
NHÂN VIÊN: Mã nhân viên là khóa chính
Vì các thuộc tính Tên nhân viên, Chức vụ, Bộ phận là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhân viên làm khóa chính.
ĐĂNG NHẬP: Tên đăng nhập là khóa chính NGUN LIỆU: Mã ngun liệu là khóa chính
Vì các thuộc tính Tên ngun liệu, Số lượng, Đơn giá, Đơn vị tính là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã ngun liệu làm khóa chính.
NHẬP NGUN LIỆU: Mã nhập ngun liệu là khóa chính
Vì các thuộc tính Tên người u cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng yêu cầu, Số lượng thực xuất, Đơn vị tính, Trạng thái u cầu là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhập nguyên liệu làm khóa chính.
PHIẾU ORDER: Mã phiếu order là khố chính
Vì các thuộc tính Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng là thuộc tính mơ tả. Thuộc tính Ngày giờ khơng thể là duy nhất vì cùng 1 lúc có thể có nhiều khách hàng order. Do đó, để dễ quản lý nhóm em xin chọn Mã phiếu order làm khóa chính.
MĨN ĂN: Mã món là khóa chính
Vì các thuộc tính Tên món, Giá bán, Đơn vị tính, Hình ảnh món là thuộc tính mơ tả. Để dễ quản lý, nhóm em xin chọn Mã món làm khóa chính.
❖ Quy tắc 1: Khử kiểu thuộc tính đa trị của kiểu thực thể:
Khơng có thuộc tính đa trị của kiểu thực thể
❖ Quy tắc 2: Khử kiểu thuộc tính đa trị của kiểu liên kết:
84
Khơng có thuộc tính đa trị của kiểu liên kết
❖ Quy tắc 3: Khử kiểu thuộc tính phức hợp:
Khơng có thuộc tính phức hợp
❖ Mơ hình ERD kinh điển
Hình 44. ERD kinh điển
3.2.1.3. Chuyển từ ERD kinh điển về ERD hạn chế
❖ Quy tắc 4: Thay đổi ký hiệu đồ hoạ
85
❖ Quy tắc 5: Xử lý kiểu liên kết 1 - 1
Khơng có kiểu liên kết 1 - 1
❖ Quy tắc 6: Xử lý kiểu liên kết m - n
(9) CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu
(10) NGUYÊN LIỆU MÓN: Mã ngun liệu, Mã món
(11) PHIẾU ORDER MĨN: Mã phiếu order, Mã món
❖ Quy tắc 7: Xác định kiểu thuộc tính kết nối
Khử thuộc tính suy dẫn: Thành tiền, Tổng cộng, Tổng tiền giảm, Khách hàng phải trả, Tiền trả lại khách
(2’) HĨA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng,
Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh tốn.
❖ Mơ hình ERD hạn chế về mơ hình quan hệ
86
Hình 45. ERD hạn chế
3.2.2 Ma trận rà soát thực thể - chức năng
(1) E1. KHÁCH HÀNG: Mã khách hàng, Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
(2) E2. HỐ ĐƠN: Số hố đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh toán.
(3) E3. NHÂN VIÊN: Mã nhân viên, Tên nhân viên, Chức vụ, Bộ phận
(4) E4. ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(5) E5. NGUYÊN LIỆU: Mã nguyên liệu, Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) E6. NHẬP NGUYÊN LIỆU: Mã nhập nguyên liệu, Tên người yêu cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
87
(7) E7. PHIẾU ORDER: Mã phiếu order, Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng
(8) E8. MĨN ĂN: Mã món, Tên món, Giá bán, Đơn vị tính, Hình ảnh món
(9) E9. CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu
(10) E10. NGUYÊN LIỆU MÓN: Mã ngun liệu, Mã món
(11) E11. PHIẾU ORDER MĨN: Mã phiếu order, Mã món
1.1 Đặt bàn 1.2 Tìm kiếm khách hàng 1.3 Lập phiếu order món ăn 2.1 Lập hóa đơn thanh tốn 2.2 Thanh tốn hóa đơn 3.1 Lập phiếu yêu cầu nhập nguyên liệu 3.2 Duyệt phiếu yêu cầu nhập nguyên
liệu 3.3 Thêm nguyên liệu 3.4 Cập nhật ngun liệu 3.5 Tìm kiếm ngun liệu 3.6 Thêm món ăn 3.7 Cập nhật món ăn 3.8 Tìm kiếm món ăn 4.1 Lập báo cáo thống kê nhập ngun liệu 4.2 Lập báo cáo thống kê nguyên liệu 4.3 Lập báo download by : skknchat@gmail.com
cáo thống kê doanh thu 4.4 Tìm kiếm báo cáo doanh thu 4.5 Lập báo cáo thống kê tài chính 5.1 Đăng nhập 5.2 Cập nhật thơng tin tài khoản 5.3 Đổi mật khẩu 5.4 Khóa tài khoản 5.5 Cấp tài khoản 5.6 Thêm nhân viên 90 download by : skknchat@gmail.com
5.7 Đăng xuất 5.8 Thêm nhân viên 3.2.3 Từ điển dữ liệu ID Mục từ 1 Đăng nhập 2 Cấp tài khoản 3 Cập nhật thông tin tài khoản 4 Đổi mật khẩu
5 Khố tài khoản
6 Thêm nhân viên
7 Đặt bàn
8 Tìm kiếm
hàng
9 Lập phiếu
món ăn
10 Lập hố đơn thanh
tốn
11 Thanh tốn hố đơn
12 Lập
nhập nguyên liệu
13 Duyệt yêu cầu nhập nguyên liệu
14 Thêm ngun liệu
15 Cập nhật liệu 16 Tìm kiếm liệu 17 Thêm món ăn 18 Cập nhật món ăn download by : skknchat@gmail.com
19 Tìm kiếm món ăn
20 Lập báo cáo thống kê nhập nguyên liệu
21 Lập báo cáo thống kê nguyên liệu
22 Lập báo cáo thống kê doanh thu
23 Tìm kiếm báo cáo doanh thu
24 Lập báo cáo thống kê tài chính
25 Đăng xuất Khi một nhân viên hay quản lý muốn thoát khỏi hệ thống sẽ thực hiện đăng xuất CHƯ ƠNG 4: THI ẾT KẾ HỆ THỐ NG 4.1. Chiến lược phát triển hệ thống
Chiến lược phát triển
Tự phát triển
có
Tích hợp trên sản phẩm đã có
download by : skknchat@gmail.com
Th ngoài
Từ những ưu nhược điểm của các chiến lược phát triển hệ thống ở bên trên nhóm chúng em xét thấy chiến lược “Tự phát triển” là phù hợp nhất với dự án bởi vì nó đáp ứng được các tiêu chí quan trọng như tính bảo mật, tính chủ động.. cho hệ thống và các nhược điểm của nó có thể giải quyết được. Với các chiến lược cịn lại, chiến lược Sử dụng sản phẩm có sẵn tuy tiết kiệm được thời gian nhưng do hệ thống có khả năng sẽ cịn mở rộng nên khơng thể áp dụng, hoặc là chiến lược Tích hợp hệ thống có sẵn - điều kiện tiên quyết là phải cần một hệ thống sẵn có thì Nhà hàng vẫn chưa đáp ứng được, còn chiến lược Thuê ngồi rất khả thi tuy nhiên nó lại khơng đảm bảo các tiêu chí quan trọng đã đề ra như vấn đề bảo mật và phải phụ thuộc khá nhiều vào bên ngoài.
96
4.2. Kiến trúc hệ thống 4.2.1 Kiến trúc vật lý
Hình 46. Kiến trúc vật lý
Nhận xét:
Hệ thống thiết kế có sự tương tác giữa người sử dụng trên các thiết bị khác nhau và vào các thời điểm khác nhau.
Ưu điểm của mơ hình client server là có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thơng tin,…) với nhiều dịch vụ đa dạng. Mơ hình client/server cung cấp một nền tảng cho phép tích hợp các kỹ thuật hiện đại như mơ hình thiết kế hướng đối tượng, hệ chun gia, hệ thông tin địa lý (GIS)…
Bảng 4.2.1 So sánh mơ hình client – server với các mơ hình khác
Mơ hình mạng Client Server Peer-to-Peer Hybrid
97
Khả năng bảo mật thông và độ an tồn Khả năng đặt. u cầu phần cứng phần mềm u cầu quản trị mạng Có xử lý và trữ khơng? Chi phí cài đặt download by : skknchat@gmail.com
Nhược điểm: Một trong những vấn đề nảy sinh trong mơ hình này đó là tính an tồn và bảo mật thơng tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ.
Kết luận :
Với những ưu, nhược điểm trên kiến trúc vật lý client - server là phù hợp với hệ thống.
Kiến trúc vật lý là Client – Server.
4.2.2 Kiến trúc logic của phần mềm
Với nhà hàng Nam Sơn, nhóm chúng em nhận thấy kiến trúc phần mềm hướng xử lý (MVC – Model View Controller) là phù hợp nhất.
Bởi vì, xét thấy hệ thống nhà hàng bao gồm nhiều bộ phận nhưng đều dùng chung một kho dữ liệu và các bộ phận đó sử dụng , xử lý dữ liệu khơng hồn tồn giống nhau dẫn đến một vấn đề quan trọng cần giải quyết đó là sự độc lập trong việc thay đổi dữ liệu với việc trình bày dữ liệu. Đặc biệt, trong tương lai hệ thống còn phát triển mở rộng cho nên yêu cầu đặt ra đó là hệ thống phải dễ dàng nâng cấp và thay thế. Kiến trúc hướng xử lý có thể đáp ứng được hai yêu cầu quan trọng như trên, nó giúp cho hệ thống có thể vận hành một cách ổn định nhất.
Để hiểu rõ hơn về kiến trúc hướng xử lý, ta có sơ đồ và mơ tả như sau:
99
Với MVC, hệ thống được cấu trúc hóa thành ba component logic tương tác với nhau:
Model component: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý …
View component: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, là nơi chứa tất cả các đối tượng GUI như textbox, image … hay hiểu một cách đơn giản nó tập hợp các form (hoặc html)
Controller component: Giữ nhiệm vụ điều hướng các yêu cầu từ phía người dùng (đến model và view) và gọi đúng những phương thức xử lý chúng.
Giải thích mơ hình :
Khi có một u cầu từ phía máy client gửi đến server, bộ phận Controller sẽ tiếp nhận và có nhiệm vụ xử lý u cầu đó. Ngồi ra, khi cần thiết, nó sẽ gọi đến thành phần Model, là bộ phận làm việc với Database.
Xử lý xong yêu cầu, tất cả kết quả trả về được đẩy đến View, tại View sẽ lấy ra mã HTML thành giao diện và trả HTML về hiển thị trên trình duyệt.
4.3. Thiết kế Cơ sở dữ liệu
4.3.1 Chuyển đổi Logical ERD sang Physical RDB
Chuyển các thực thể thành bảng/file (đổi tên theo quy ước của bảng / file)
Tên thực thể Tên bảng
100
KHÁCH HÀNG HÓA ĐƠN NHÂN VIÊN ĐĂNG NHẬP NGUYÊN LIỆU NHẬP NGUYÊN LIỆU PHIẾU ORDER MÓN ĂN CHI TIẾT NHẬP NGUYÊN LIỆU MĨN PHIẾU ORDER MĨN
Chuyển thực thể - Thuộc tính thành Bảng – Trường dữ liệu
Thực thể - Thuộc tính
KHÁCH HÀNG: Mã khách hàng, Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
101
HOÁ ĐƠN: Số hoá đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh toán
NHÂN VIÊN: Mã nhân viên, Tên nhân viên, Chức vụ, Bộ phận ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản NGUYÊN LIỆU: Mã nguyên liệu, Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
NHẬP NGUYÊN LIỆU: Mã nhập nguyên liệu, Tên người yêu cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
PHIẾU ORDER: Mã phiếu order, Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng MĨN ĂN: Mã món, Tên món, Giá bán, Đơn vị tính, Hình ảnh
102
món
CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu NGUYÊN LIỆU MĨN: Mã ngun liệu, Mã món
PHIẾU ORDER MĨN: Mã phiếu order, Mã món 4.3.2 Đặc tả Cơ sở dữ liệu MaKH HoTen NgaySinh DiaChi SoDienThoai Email SoHD SoBan NgayGio 103 download by : skknchat@gmail.com
TenMonAn SoLuong DonGia ChietKhau TienDatTruoc TienKhachDua NVThanhToan MaNV TenNV ChucVu BoPhan TenDangNhap MatKhau TrangThaiTaiKhoan MaNL download by : skknchat@gmail.com
TenNL SoLuong DonGia DonViTinh MaNNL NguoiYeuCau TenNL NgayYeuCau SoLuongYeuCau