Chuyển đổi Logical ERD sang Physical RDB

Một phần của tài liệu bài tập lớn đề bài phân tích thiết kế hệ thống quản lý hoạt động tại nhà hàng nam sơn – 809 giải phóng (Trang 110)

CHƯƠNG 4 : THIẾT KẾ HỆ THỐNG

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

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

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 SoLuongThucXuat DonViTinh TrangThaiYeuCau MaPhieuOrder SoBan NgayGio download by : skknchat@gmail.com

TenNV SoKhach TenMon SoLuong MaMon TenMon GiaBan DonViTinh HìnhAnhMon MaNNL MaNL MaNL MaMon 106 download by : skknchat@gmail.com

MaPhieuOrder MaMon 4.3.3 Sơ đồ quan hệ Hình 47. Sơ đồ quan hệ 107 download by : skknchat@gmail.com

4.4. Physical DFD

4.4.1. Physical DFD nhập nguyên liệu

Hình 48. Physical DFD nhập nguyên liệu

4.4.2. Physical DFD đón tiếp khách hàng

Hình 49. Physical DFD đón tiếp khách hàng

108

4.4.3. Physical DFD order món ăn

Hình 50. Physical DFD order món ăn 4.4.4. Physical DFD thanh tốn hóa đơn ăn 4.4.4. Physical DFD thanh tốn hóa đơn

Hình 51. Physical DFD thanh tốn hoá đơn

4.5. Thiết kế giao diện người dùng 4.5.1. Chuẩn giao diện

Mẫu giao diện (Interface Templates):

Menu:

109

Hình 52. Giao diện menu quản lý hệ thống

Thêm nguyên liệu:

Hình 53. Giao diện thêm nguyên liệu

Các đối tượng giao diện (Interface Objects): Các tùy chọn (Option):

110

Hình 54. Giao diện tuỳ chọn

Tên thuộc tính:

Trường nhập dữ liệu:

Nút điều khiển, xử lý:

Bảng hiển thị thông tin:

Các hoạt động trên giao diện (Interface Actions): o Thêm dữ liệu:

o Cập nhật dữ liệu:

111

o Tìm kiếm dữ liệu:

o Thốt:

o Các biểu tượng (Interface Icons):

Lần lượt là : ẩn giao diện, phóng to giao diện và đóng giao diện.

4.5.2 Giao diện hệ thống

4.5.2.1. Giao diện quản lý khách hàng

Giao diện đặt bàn:

Hình 55. Giao diện đặt bàn

112

Giao diện tìm kiếm khách hàng:

Hình 56. Giao diện tìm kiếm khách hàng đặt bàn

Giao diện phiếu order món ăn:

113

Hình 57. Giao diện phiếu order món ăn 4.5.2.2. Giao diện quản lý nguyên liệu ăn 4.5.2.2. Giao diện quản lý nguyên liệu

Hình 58. Giao diện quản lý ngun liệu

114

4.5.2.3. Giao diện quản lý thanh tốn

Hình 59. Giao diện quản lý thanh toán 4.5.2.4. Giao diện quản lý tài khoản toán 4.5.2.4. Giao diện quản lý tài khoản

Giao diện đăng nhập:

Hình 60. Giao diện đăng nhập

Giao diện đổi mật khẩu:

115

Hình 61. Giao diện đổi mật khẩu

Giao diện quản lý nhân viên (thêm nhân viên, khoá tài khoản nhân viên):

Hình 62. Giao diện quản lý nhân viên

Giao diện cấp tài khoản:

116

Hình 63. Giao diện cấp tài khoản 4.5.2.5. Giao diện quản lý báo cáo thống khoản 4.5.2.5. Giao diện quản lý báo cáo thống

Hình 64. Giao diện quản lý báo cáo thống kê

4.6. Thiết kế kiểm soát

4.6.1 Xac đinh cac điêm hơ cua hê thông

Do con người: thao tác, chuyên môn. Giao diện của hệ thống dễ sử dụng. Tuy nhiên do dễ sử dụng nên yếu tố con người khơng có chun mơn q cao cũng có thể xâm nhập dễ dàng nếu rị rỉ thơng tin tài khoản của người có quyền quản lý.

Do kĩ thuật: lỗi/sự cố phần cứng. Ví dụ: khi đang hoạt động máy tính bị lỗi màn hình, RAM đầy hoặc do máy bị nóng lên dẫn đến tình trạng khơng thao tác được

Thảm hoạ tự nhiên: lụt, bão, sét đánh…Ví dụ: khi có những thảm họa tự nhiên không báo trước, dữ liệu cần được sao lưu để đảm bảo tất cả có thể được khơi phục khơng cần máy chủ.

Do cố ý: gian lận, hack… Gian lận thương mại: gián điệp… Các phá hoại khác

4.6.2 Cac giai phap đươc đê xuât đê khắc phuc cac điêm hơ

Hệ thống hiện tại vẫn đang tồn tại 1 số điểm hở như đã nêu ở trên . Và nhóm cũng xin đưa ra 1 số đề xuất giải pháp khắắ́c phục điểm hở đó góp phần xây dựng hệ thống làm việc 1 cách hiệu quả , chuẩn mực và an tồn hơn:

Tăng cường tính an tồn cho hệ thống:

Mục đích: kiểm sốt tốt hơn về hệ thống tránh bị xâm nhập và phá hoại có chủ đích từ phía con người.

u cầu: tên đăng nhập bắắ́t buộc phải là mã nhân viên và mật khẩu phải thay đổi 1 tháng 1 lần.

Tăng cường tính tồn vẹn cho hệ thống:

Phải đảm bảo cho hệ thống hoạt động một cách tốt nhất, không bị gián đoạn trong quá trình sử dụng hoặc lỗi kỹ thuật.

118

Ngun nhân: có thể là hỏng phần cứng, lập trình sai, hệ điều hành lỗi,..

Hậu quả: mất thời gian khắắ́c phục hệ thống, mất dữ liệu, tốn kém tiền bạc để sửa lỗi.

Cách khắắ́c phục: Tạo các bản sao lưu, thiết lập các server dự phịng.. Tăng cường tính tiện lợi cho hệ thống:

Đảm bảo cho những người khơng có kĩ năng về cơng nghệ cũng như là người nước ngồi có thể sử dụng được dễ dàng.

Cách khắắ́c phục: Tạo 1 bản hướng dẫn bằng tiếng việt và tiếng anh 1 cách dễ hiểu nhất để mọi người đều có thế tiếp cận được dễ dàng.

4.6.3 Cac kêt qua thiêt kê kiêm soat

Bảng đặc tả ràng buộc với từng thông tin đầu vào, đầu ra (I): Chế độ mã hoá đối với những thơng tin nhạy cảm/mật (I): Mã hố mật khẩu bằng mã hoá bằng key xác thực

Mật khẩu phải được đổi sau 1 tháng để đảm bảo tính bảo mật Ma trận phân cấp truy cập chức năng (A):

Chức năng 1.1. Đặt bàn 1.2. Tìm khách hàng 1.3. Lập order món ăn 2.1. Lập hố đơn thanh toán 2.2. Thanh hoá đơn 3.1. Lập yêu cầu nguyên liệu 3.2. Duyệt yêu cầu

nguyên liệu 3.3. nguyên liệu 3.4. Cập ngun liệu 3.5. Tìm ngun liệu 3.6. Thêm ăn 3.7. Cập món ăn 3.8. Tìm món ăn 4.1. Lập báo cáo thống kê nguyên liệu 4.2. Lập báo cáo thống liệu 4.3. Lập báo cáo thống kê thu 4.4. Tìm báo cáo 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 thông tin khoản 5.3. Đổi mật khẩu 5.4. khoản 5.5. Cấp khoản 5.6. Thêm viên 5.7. Đăng xuất

120

Thông tin Danh khoản Danh sách ăn Danh sách quyền Danh sách bàn ăn Danh sách khách hàng Danh sách đơn Danh nguyên liệu Danh sách viên Danh sách order Danh sách cầu nhập nguyên liệu Danh sách yêu cầu nguyên liệu

Các kịch bản sao lưu, phục hồi dữ liệu, ứng phó rủi ro, kiểm tra an tồn thơng tin (A):

Sao lưu phục hồi dữ liệu: tránh trường hợp dữ liệu đang nhập bị mất đi khi mất điện hay hỏng phần cứng. Xây dựng server dự phòng, dữ liệu tự động sao lưu lại và khi mất điện hay mất dữ liệu tại máy đang làm việc, người dùng có thể truy cập vào server dự phịng để lấy lại.

Ứng phó rủi ro: Trường hợp nếu một tài khoản nào đó đăng nhập vào hệ thống cần phải có xác minh khi đăng nhập và mật khẩu được thay đổi một tháng một lần, để đảm bảo khi bị lộ tài khoản người lạ cũng không thể đăng nhập được.

Hệ thống thêm mục trợ giúp người dùng có tài liệu tham khảo sử dụng vận hành hệ thống bằng tiếng việt và tiếng anh để đảm bảo người dùng có thể tiếp cận được dễ dàng.

4.7. Thiết kế Xử lý (cách bố trí tùy theo từng kiến trúc phần mềm) 4.7.1 Chức năng: 1.3. Lập phiếu order món ăn

Các bước xử lý:

Lúc gọi đến form lập phiếu order món ăn (LapPhieuOrder.cs), textbox MaPhieuOrder phải tự động hiển thị được mã phiếu tiếp theo (ví dụ: trong hệ thống đã có 2 phiếu order món ăn rồi thì lúc form LapPhieuOrder.cs được gọi đến phải hiển thị trong textbox MaPhieuOrder là 3).

Đồng thời, textbox ngày giờ phải tự động lấy và hiển thị ra textbox NgayGio là ngày giờ hiện tại khi vào form.

Cùng vào đó, comboBox TenNV và comboBox TenMon phải được tự động load hiển thị ra danh sách tên nhân viên vào comboBox TenNV, và danh sách tên món vào comboBox TenMon.

Sau khi nhập đầy đủ các thông tin vào các trường, nhấn button “Lập” thì thơng tin được lưu vào DataGridView.

Mỗi 1 bản ghi (record) được thêm vào DataGridView đều có thể xem chi tiết lại bản ghi đó và thực hiện xuất ra phiếu (PhieuOrder.rpt). Chọn 1 bản ghi (checkbox) và nhấn button “Xem chi tiết” để xem chi tiết phiếu order. Sau đó, nhấn button “Xuất” để thực hiện xuất phiếu order đó (PhieuOrder.rpt).

Nếu dữ liệu trong các trường (textbox) cịn trống, mà thực hiện nhấn button “Lập” thì hệ thống sẽ hiển thị thông báo “Textbox nào không được để trống”.

Với các xử lý trên, Model Component cần có các phương thức: String LoadMaPhieuOrder();

String getNgayHienTai() ;

122

DataTable LoadTenNV(); DataTable LoadTenMon(); Controller Component cần có:

void btnLap_Click(object sender, EventArgs e);

Hàm này sẽ lần lượt gọi các phương thức trong Model Component. string message;

View Component có giao diện LapPhieuOrder.cs như sau:

Hình 65. View Component lập phiếu order món ăn

Biểu đồ giao tiếp tuần tự giữa các thành phần:

123

4.7.2 Chức năng: 2.1. Lập hóa đơn thanh toán

Các bước xử lý:

Lúc gọi đến form Lập hóa đơn thanh tốn(FrmLaphoadon.cs), con trỏ chuột tự động nằm ở ô textbox txtSohoadon.

Textbox lấy ngày phải tự động lấy ngày hiện tại và hiển thị ra textbox txtNgay.

ComboBox TenNVthanhtoan tự động load hiển thị danh danh sách tên nhân viên thanh tốn.

Sau khi nhập đầy đủ các thơng tin cần thiết vào các trường, nhấn button "Cập nhật", thông tin sẽ được tự động lưu vào Data GridView.

Muốn tìm kiếm một hóa đơn nào đó chỉ cần nhập thông tin vào textbox cần tìm kiếm rồi nhấn button Tìm kiếm. Sự kiện sẽ trả ra DataGridView thơng tin của số hóa đơn theo thơng tin đã nhập.

Ơ checkbox trong DataGridView chỉ hiển thị với những bản ghi có thơng tin của "Số hóa đơn" , vì đây sẽ là 1 hóa đơn thanh tốn.

Chọn 1 bản ghi (checkbox) nhấn button "Lập hóa đơn" . Sự kiện sẽ in ra phiếu "Hóa đơn thanh tốn" (Hoadonthanhtoan.rpt).

124

Ngoại trừ số hóa đơn và số bàn ăn có thể được để trống do 1 hóa đơn chỉ dành cho 1 bàn ăn và bàn ăn đó có thể có nhiều món thì tồn bộ các trường cịn lại khơng được để trống. Nếu cịn để trống, khi nhấn button Cập nhật sẽ có thơng báo hiện ra màn hình "Textbox nào khơng được để trống".

Các phương thức của Model Component: getNgayhientai(); DataTable LoadTenNVthanhtoan(); Controller Component cần có:

void btnCapnhathoadon_Click(object sender, EventArgs e);

Hàm này sẽ lần lượt gọi các phương thức trong Model Component. void btnLaphoadon_Click(object sender, EventArgs e);

void btnTimkiem_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e); View Component có giao diện FrmLaphoadon.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

125

4.7.3 Chức năng: 3.1. Lập phiếu yêu cầu nhập nguyên liệu

Các bước xử lý:

Lúc gọi đến form Yêu cầu nhập nguyên(FrmYCNNL.cs), con trỏ chuột tự động nằm ở ô textbox txtHoTen.

Textbox lấy ngày phải tự động lấy ngày hiện tại và hiển thị ra textbox txtNgayYC.

Sau khi nhập đầy đủ các thông tin cần thiết vào các trường, nhấn button "Gửi phiếu yêu cầu" thì các thơng tin được gửi lên hệ thống và lưu trữ và database.

Nếu trường nào bị bỏ trống thì khi nhấn vào button “Gửi phiếu yêu cầu” sẽ hiển thị message box thông báo yêu cầu điền đầy đủ thông tin.

Các phương thức của Model Component: + getNgayHienTai();

126

yeuCauNhapNguyenLieu(); Controller Component cần có:

void btnGuiPhieuYeuCau_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e)

View Component có giao diện FrmPYCNNL.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

4.7.4 Chức năng: 3.5. Tìm kiếm nguyên liệu

Các bước xử lý:

127

Lúc gọi đến form Quản lý nguyên liệu (QLNguyenlieu.cs), con trỏ chuột tự động nằm ở ô textbox txtManguyenlieu.

Sau khi nhập các thơng tin cần tìm kiếm vào các trường, nhấn button "Tìm kiếm", Khi nhập thơng tin cần tìm kiếm ở các ơ textbox sai kiểu dữ liệu hoặc thơng tin khơng đúng sau khi nhấn nút “Tìm kiếm” hệ thống sẽ hiện thông báo “Thông tin bạn nhập không đúng mời kiểm tra lại” và con trỏ chuột sẽ tự động nhảy vào ơ textbox có thơng tin bị sai.

Trong trường hợp thơng tin khơng bị sai thì sau khi nhấn nút “tìm kiếm” thơng tin sẽ được tự động lưu vào Data GridView. Sự kiện sẽ trả ra DataGridView thông tin của nguyên liệu theo thông tin đã nhập.

Các phương thức của Model Component: khơng có. Controller Component cần có:

void btnTimkiemnguyenlieu_Click(object sender, EventArgs e); Hàm này sẽ lần lượt gọi các phương thức trong Model

Component void btnTimkiem_Click(object sender, EventArgs e); void btnThoat_Click(object sender, EventArgs e);

View Component có giao diện QLNguyenlieu.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

128

4.7.5 Chức năng: 4.1. Lập báo cáo thống kê nhập nguyên liệu

Các bước xử lý:

Khi gọi đến form Quản lý báo cáo thống kê (QLBaoCao.cs), combobox Danh Mục Báo Cáo phải tự động hiển thị được tên của 1 trong những loại báo cáo nhà hàng quản lý.

Click vào mũi tên sổ xuống chọn Nhập Nguyên Liệu nếu loại báo cáo trong combobox không phải là báo cáo nhập nguyên liệu.

Sau khi chọn loại báo cáo cần xem click vào ô ngày lập để chọn ngày lập hóa đơn, nếu thơng tin ngày khơng chính xác hiện thơng báo “Khơng có báo cáo thống kê nào được lập, hãy chọn lại ngày lập”.

Sau khi nhập chính xác loại báo cáo cần xem và ngày lập click nút xem báo cáo để đi đến báo cáo.

Các phương thức của Model Component: getTaoMoi();

Controller Component cần có:

void btnTaoMoi_Click(object sender, EventArgs e);

→ Hàm này sẽ lần lượt gọi các phương thức trong Model Component. 129

void btnThoat_Click(object sender, EventArgs e);

Biểu đồ giao tiếp tuần tự giữa các thành phần:

4.7.6 Chức năng: 4.2. Lập báo cáo thống kê nguyên liệu

Các bước xử lý:

Khi gọi đến form Quản lý báo cáo thống kê (QLBaoCao.cs ), combobox Danh Mục Báo Cáo phải tự động hiển thị được tên của 1 trong những loại báo cáo nhà hàng quản lý.

Click vào mũi tên bên phải ô chọn “ Nguyên Liệu” nếu loại báo cáo trong combobox không phải là báo cáo thống kê nguyên liệu.

Sau khi chọn loại báo cáo cần xem click vào ô “Ngày Lập” để chọn ngày lập hóa đơn, nếu thông tin ngày khơng chính xác hiện thơng báo “Khơng có báo cáo thống kê nào được lập, hãy chọn lại ngày lập”.

Sau khi nhập chính xác loại báo cáo cần xem và ngày lập click nút “Tạo Mới” để đi đến báo cáo.

130

Controller Component cần có: getTaoMoi(); DataTable LoadDanhMucBaoCao(); getNgayLap(); String CheckNgayLap(); String CheckTenDanhMuc();

→ Hàm này sẽ lần lượt gọi các phương thức trong Model

Component. void btnTaoMoi_Click(object sender, EventArgs e); View Component có giao diện QLBaoCao.cs như sau:

Biểu đồ giao tiếp tuần tự giữa các thành phần:

131

4.7.7 Chức năng: 5.3. Đổi mật khẩu

Các bước xử lý:

Một phần của tài liệu bài tập lớn đề bài phân tích thiết kế hệ thống quản lý hoạt động tại nhà hàng nam sơn – 809 giải phóng (Trang 110)

Tải bản đầy đủ (DOCX)

(186 trang)
w