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
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 ngun 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ể
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
❖ 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ã nguyên 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.
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
(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 ngun 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
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 1.1 Đặt bàn C 1.2 Tìm kiếm khách hàng R 1.3 Lập phiếu order món ăn C R C 2.1 Lập hóa đơn thanh tốn R C R 2.2 Thanh tốn hóa đơn R R 3.1 Lập phiếu yêu cầu nhập nguyên liệu R C C 3.2 Duyệt phiếu yêu cầu nhập nguyên
liệu 3.3 Thêm nguyên liệu C C 3.4 Cập nhật nguyên liệu RU 3.5 Tìm kiếm nguyên liệu R 3.6 Thêm món ăn C C 3.7 Cập nhật món ăn RU 3.8 Tìm kiếm món ăn R 4.1 Lập báo cáo thống kê nhập ngun liệu R R R 4.2 Lập báo cáo thống kê R R
cáo thống kê doanh thu 4.4 Tìm kiếm báo cáo doanh thu R 4.5 Lập báo cáo thống kê tài chính R R 5.1 Đăng nhập R R 5.2 Cập nhật thông tin tài khoản RU R 5.3 Đổi mật khẩu RU 5.4 Khóa tài khoản R RU 5.5 Cấp tài khoản R C 5.6 Thêm nhân viên C
5.7 Đăng xuất R 5.8 Thêm nhân viên C 3.2.3 Từ điển dữ liệu ID Mục từ Tên khác Ý nghĩa
1 Đăng nhập Khi một nhân viên muốn vào hệ thống sẽ
thực hiện đăng nhập và thông tin này sẽ được lưu lại
2 Cấp tài khoản Khi có nhân viên mới vào làm, quản lý sẽ đăng nhập vào hệ thống và thực hiện cấp tài khoản cho nhân viên đó
3 Cập nhật thơng tin tài khoản
Nhân viên có tài khoản có thể đăng nhập vào hệ thống để thực hiện cập nhật thông tin của bản thân
4 Đổi mật khẩu Khi nhân viên hay quản lý cảm thấy mật khẩu khơng an tồn có thể thực hiện thay đổi mật khẩu của mình
5 Khố tài khoản Khi nhân viên nghỉ làm, quản lý sẽ thực hiện khố tài khoản nhân viên đó lại
7 Đặt bàn Khi khách hàng gọi điện đặt bàn, nhân viên sẽ thực hiện lưu thông tin đặt bàn của khách hàng vào hệ thống
8 Tìm kiếm khách hàng
Khi khách hàng đến nhà hàng, nhân viên có thể thực hiện tìm kiếm thơng tin của khách hàng để kiểm tra xem khách đã đặt bàn trước hay chưa
9 Lập phiếu order món ăn
Khi khách hàng có yêu cầu gọi món, nhân viên sẽ thực hiện lập phiếu order món ăn
10 Lập hố đơn thanh toán
Khi khách hàng yêu cầu thanh toán, nhân viên bộ phận kế toán - thu ngân sẽ thực hiện lập hoá đơn thanh toán, in rồi giao cho khách hàng. Đồng thời, lưu thơng tin vào nơi lưu trữ của hệ thống
11 Thanh tốn hoá đơn Sau khi lập hoá đơn, khách hàng sẽ thanh tốn chi phí theo hoá đơn đã lập. Bộ phận kế toán - thu ngân sẽ kiểm tra thu tiền và đánh dấu hoá đơn đã được thanh toán.
12 Lập phiếu yêu cầu nhập nguyên liệu
Khi nguyên liệu trong kho hết (hoặc gần hết) cần nhập bổ sung nguyên liệu. Nhân viên sẽ lập phiếu yêu cầu nhập nguyên liệu và gửi bộ phận quản lý duyệt yêu
cầu. 13 Duyệt yêu cầu nhập
nguyên liệu
Khi nhân viên gửi yêu cầu nhập nguyên liệu, bộ phận quản lý tiếp nhận yêu cầu, kiểm tra thông tin trong phiếu để ra quyết định có nhập nguyên liệu hay không.
14 Thêm nguyên liệu Sau khi yêu cầu nhập nguyên liệu được duyệt nhà hàng sẽ tiến hành nhập nguyên liệu theo phiếu yêu cầu. Thông tin về nguyên liệu được nhập sẽ được lưu lại để quản lý.
15 Cập nhật ngun liệu
Khi có thay đổi về thơng tin của nguyên liệu cần cập nhật thay đổi lên hệ thống. 16 Tìm kiếm nguyên
liệu
Khi cần tìm kiếm thơng tin về ngun liệu có thể nhập thơng tin về ngun liệu muốn tìm, hệ thống sẽ lọc theo thơng tin đã nhập để đưa ra nguyên liệu và thông tin trên hệ thống.
17 Thêm món ăn Khi nhà hàng có món mới cần nhập thơng tin món lên hệ thống và đưa vào menu của nhà hàng.
thống.
19 Tìm kiếm món ăn Khi cần tìm kiếm món ăn có thể nhập thơng tin cần tìm kiếm, hệ thống sẽ lọc ra các món ăn tương ứng với thơng tin đã nhập và thơng tin của món ăn đó.
20 Lập báo cáo thống kê nhập nguyên liệu
Khi nhập nguyên liệu cần lập báo cáo chi tiết thông tin mỗi lần nhập nguyên liệu cho cửa hàng.
21 Lập báo cáo thống kê nguyên liệu
Khi có yêu cầu từ quản lý hoặc định kỳ theo tháng (quý, năm) thì bộ phận bếp sẽ lập báo cáo.
22 Lập báo cáo thống kê doanh thu
Khi có yêu cầu từ quản lý hoặc định kỳ theo tháng (quý, năm) thì bộ phận kế toán - thu ngân sẽ lập báo cáo.
23 Tìm kiếm báo cáo doanh thu
Khi cần xem lại báo cáo doanh thu của một tháng (q, năm) nào đó thì nhập thơng tin báo cáo cần xem hệ thống sẽ lọc và hiển thị danh sách báo cáo theo thông tin đã nhập.
24 Lập báo cáo thống kê tài chính
Khi có u cầu từ quản lý hoặc định kỳ theo tháng (quý, năm) thì bộ phận kế toán - thu ngân sẽ lập báo cáo tình hình thu - chi của nhà hàng.
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ỐNG4.1. Chiến lược phát triển hệ thống 4.1. Chiến lược phát triển hệ thống
Chiến lược phát triển Ưu điểm Nhược điểm
Tự phát triển - Đáp ứng được mọi yêu cầu, chức năng đã đề ra
- Bảo mật dữ liệu. - Chủ động trong mọi
việc, mọi tình huống.
- Cần đội ngũ có năng lực hiểu biết và kinh nghiệm về hệ thống(vận hành, bảo trì ..)
- Cần nhiều thời gian. - Độ rủi ro cao.
Sử dụng sản phẩm sẵn có
- Tiết kiệm được thời gian (có thể sử dụng được ngay)
- Độ rủi ro thấp, thuận tiện trong việc sử dụng
- Có thể khơng đáp ứng đầy đủ các chức năng đã đặt ra. - Có thế tốn nhiều chi phí với các sản phẩm có bản quyền. - Bị hạn chế khi hệ thống có hướng mở rộng.
- Chỉ cần phát triển thêm các chức năng cịn thiếu. - Hệ thống sẵn có phải có khả năng mở rộng, phát triển - Cần đội ngũ có năng lực để phát triển hệ thống dựa vào cái đã có Th ngồi - Đáp ứng được các
chức năng và yêu cầu đặt ra
- Không phải tốn nguồn nhân lực trong việc thiết kế và phát triển hệ thống
- Tốn nhiều kinh phí - Khơng an tồn trong việc bảo mật dữ liệu
- Phụ thuộc nhiều vào bên 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 ngồi.
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ệ chuyên gia, hệ thông tin địa lý (GIS)…
Khả năng bảo mật thơng tin và độ an tồn Khả năng bảo mật và an tồn thơng tin cao. Có thể điều chỉnh quyền truy cập thông tin. Khả năng bảo mật và an tồn thơng tin kém. Phần lớn phụ thuộc vào mức độ quyền được chia sẻ.
Khả năng bảo mật và an tồn thơng tin cao. Có thể điều chỉnh quyền truy cập thông tin. Khả năng cài đặt. Cài đặt khá khó khăn. Cài đặt dễ dàng. Cài đặt khá khó khăn. Yêu cầu về phần cứng và phần mềm Bao gồm: + Máy chủ + Hệ điều hành + Phần cứng Chỉ cần ít phần cứng bổ sung. Ngồi ra khơng cần máy chủ và hệ điều hành như 2 mơ hình trên. Bao gồm: + Máy chủ + Hệ điều hành + Phần cứng Yêu cầu về quản trị mạng Cần phải có quản trị mạng Khơng cần quản trị mạng Cần phải có quản trị mạng Có khả năng xử lý và lưu trữ tập trung khơng? Có Khơng Khơng
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 toà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.
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)
KHÁCH HÀNG tbl_khachhang
HÓA ĐƠN tbl_hoadon
NHÂN VIÊN tbl_nhanvien
ĐĂNG NHẬP tbl_dangnhap
NGUYÊN LIỆU tbl_nguyenlieu
NHẬP NGUYÊN LIỆU tbl_nhapnguyenlieu
PHIẾU ORDER tbl_phieuorder
MÓN ĂN tbl_monan
CHI TIẾT NHẬP tbl_chitietnhap
NGUYÊN LIỆU MÓN tbl_nguyenlieu_mon