Chuyển đổi Logical ERD sang Physical RDB

Một phần của tài liệu (TIỂU LUẬN) 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 102)

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)

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

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

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 TenMonAn SoLuong

DonGia ChietKhau TienDatTruoc TienKhachDua NVThanhToan MaNV TenNV ChucVu BoPhan TenDangNhap MatKhau TrangThaiTaiKhoan MaNL 104 TenNL

DonGia DonViTinh MaNNL NguoiYeuCau TenNL NgayYeuCau SoLuongYeuCau SoLuongThucXuat DonViTinh TrangThaiYeuCau MaPhieuOrder SoBan NgayGio 105 TenNV SoKhach TenMon SoLuong

MaMon TenMon GiaBan DonViTinh HìnhAnhMon MaNNL MaNL MaNL MaMon 106 MaPhieuOrder MaMon 4.3.3 Sơ đồ quan hệ

Hình 47. Sơ đồ quan hệ

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

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 hố đơ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:

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):

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:

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:

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:

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

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:

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, khố tài khoản nhân viên):

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

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

4.6. Thiết kế kiểm số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 quá 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.

Yê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 q trình sử dụng hoặc lỗi kỹ thuật.

Nguyên 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ã hố đối với những thơng tin nhạy cảm/mật (I): Mã hoá 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 hoá đơ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

ngun liệu 3.3. ngun 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ê ngun 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.

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 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();

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:

4.7.2 Chức năng: 2.1. Lập hóa đơn thanh tố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).

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:

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 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();

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ý:

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:

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.

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.

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:

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

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

Khi gọi đến form đổi mật khẩu (DoiMatKhau.cs), textbox TenDangNhap phải tự động hiển thị được tên đăng nhập của tài khoản hiện đang sử dụng chức năng này.

Sau khi nhập đầy đủ các thông tin về mật khẩu cũ, mật khẩu mới và xác nhận mật khẩu, nhấn button “Cập nhật” thì thơng tin mật khẩu mới sẽ được cập nhật vào hệ thống và hiển thị thông báo “Đổi mật khẩu thành công”.

Nếu dữ liệu về mật khẩu cũ không khớp với mật khẩu hiện tại của tài khoản thì khi nhấn nút “Cập nhật” hệ thống sẽ hiển thị thơng báo “Mật khẩu cũ khơng chính xác”.

Nếu dữ liệu trường mật khẩu mới trống thì khi nhấn nút “Cập nhật” hệ thống sẽ hiển thị thông báo “Mật khẩu mới không được để trống”.

Nếu dữ liệu trường xác nhận mật khẩu không khớp với mật khẩu mới

Một phần của tài liệu (TIỂU LUẬN) 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 102)

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

(176 trang)
w