Ngày nay, khoa học công nghệ đã có những bước phát triển mạnh mẽ cả về chiều rộng lẫn chiều sâu. Máy tính đã trở thành một công cụ làm việc, giải trí thông dụng của con người không những ở công sở mà thậm chí còn ở ngay trong gia đình. Sự phát triển của công nghệ thông tin là tiền đề cho sự phát triển của các ngành khoa học khác.
Đi cùng với sự phát triển của khoa học công nghệ, thương mại điện tử ngày nay đã trở thành 1 ngành kinh tế mũi nhọn trên thế giới với nhiều hình thức đa dạng
Nhờ vào sự phát triển của các phương tiện truyền thông, đặc biệt là sự phát triển của tin học đã tạo điều kiện cho mọi người có thể giao tiếp với nhau 1 cách nhanh chóng và dễ dàng hơn thông qua các dịch vụ internet. Vì là 1 môi trường truyền thông rộng khắp thế giới nên thông tin có thể được giới thiệu tới từng người một cách nhanh chóng và thuận lợi. Chính vì vậy đã tạo điều kiện thuận lợi cho thương mại điện tử thông qua internet và nhanh chóng trở thành phổ biến thế giới, trở thành một công cụ mạnh mẽ đê bán hàng và quảng cáo hàng hoá của các nhà cung cấp. Đối với khách hàng thì có thể lựa chọn, so sánh những loại hàng hoá phù hợp về giá cả hàng hoá, dịch vụ, chất lượng .
Trong phạm vi bài thực tập này, em đã nghiên cứu tìm hiểu cấu trúc và mô hình hoạt động của một Website giới thiệu du lịch, và từ đó ứng dụng vào bài làm của mình. Website được xây dựng cơ bản trên nền tảng của ngôn ngữ PHP, với sự hỗ trợ của công cụ để xây dựng nó là Draemwave. Website được chạy thử trên localhost của Xampp, phiên bản 1.6.8 . Đồng thời, em cũng nghiên cứu tìm hiểu CakePHP Framework, học cách cấu hình và sử dụng cơ bản của nó, mặc dù chưa được chuyên sâu nhưng em sẽ cố gắng để tìm hiểu thêm nó về sau.
Trước tiên em xin gửi lời cảm ơn đến thầy Hoàng Anh Việt, là giảng viên trực tiếp hướng dẫn chúng em trong đợt thực tập này. Cảm ơn thầy đã tạo cho chúng em những điều kiện thuận lợi để chúng em có thể hoàn thành tốt đợt thực tập này. Và thứ hai nữa là em muốn gửi lời cảm ơn tới những người bạn của em, đã góp ý và giúp đỡ em rất nhiều trong đợt thực tập này, về tất cả mọi thứ.
Vì được hoàn thành trong 1 thời gian ngắn, nên bài làm của em chắc chắn sẽ không thể tránh khỏi những hạn chế và sai sót, nên em mong được thầy và các bạn góp ý để lần sau em có thể làm tốt hơn.
Em xin chân thành cảm ơn !
65 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2616 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu xây dựng website du lịch travelling_mrt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tt nhà hàng
4.4 Xóa tt địa điểm
5.2 Thêm tt khách sạn
5.3 Sửa tt khách sạn
6.2 Thêm tt phương tiện
5.4 Xóa tt khách sạn
7.2 Thêm tt tour
8.2 Xác nhận đặt tour
9.2 Xem ds đơn đặt tour
6.3 Sửa tt phương tiện
6.4 .Xóa tt phương tiện
7.3 Sửa tt tour
7.4 Xóa tt tour
8.3 Sửa tt đặt tour
8.4 Hủy đặt tour
9.3 Xử lí đơn đặt tour
9.4 Thông báo cho người dùng kết quả xử lí đơn đặt tour
II. Các biểu đồ luồng dữ liệu :
Biểu đồ luồng dữ liệu mức khung cảnh
2 tác nhân chính tác động lên hệ thống là :
Guess
Người quản trị hệ thống (NQT)
Hình 2 : Biểu đồ luồng dữ liệu mức khung cảnh
Hệ thống Website giới thiệu du lịch
NQT
Guess
1
2
3
4
5
8
7
6
9
10
Hồ sơ dữ liệu :
Đăng kí/ Đăng nhập
Tìm kiếm thông tin + thông tin trả về
Nhận xét, đánh giá bài viết, yêu cầu hỗ trợ trực tuyến...
Đặt tour
Giải quyết thắc mắc
Yêu cầu giải quyết thắc mắc
Thông tin thành viên
Thông tin đặt tour
Nội dung Website ( thông tin về các tour du lịch, địa điểm du lịch, nhà hàng, khách sạn, phương tiện......
Giải đáp thắc mắc.
Biểu đồ luồng dữ liệu mức đỉnh
Tác nhân ngoài :
Guess
Người quản trị hệ thống (NQT)
Tác nhân trong
Quản lý xem thông tin
Quản lý bài viết
Quản lý thông tin địa điểm du lịch
Quản lý thông tin khách sạn
Quản lý thông tin nhà hàng
Quản lý thông tin phương tiện
Quản lý thông tin tour
Quản lý đặt tour
Quản lý đơn đặt tour
Quản lý người dùng
Các kho dữ liệu
Thông tin đặt tour
Thông tin địa điểm
Thông tin phương tiên
Thông tin khách sạn
Thông tin nhà hàng
Thông tin bài viết
Thông tin tour
Thông tin người dùng
Hình 3 : Biểu đồ luồng dữ liệu mức đỉnh
Ql tt phương tiện
Quản lý tt nhà hàng
Quản lý tt tour
Quản lý đơn đặt tour
Quản lý bài viết
Quản lý tt khách sạn
Quản lý đặt tour
Xem thông tin
Quản lý tt người dùng
Guess
TT tour
TT người dùng
TT bài viết
TT địa điểm
NQT
TT khách sạn
TT đặt tour
TT nhà hàng
TT phương tiện
Quản lý tt địa điểm
8
9
10
11
6
12
5
7
2
1
3
4
Hồ sơ dữ liệu :
Quản lý, cập nhật thông tin đơn đặt tour
Quản lý, cập nhật thông tin địa điểm
Quản lý, cập nhật thông tin phương tiện
Quản lý, cập nhật thông tin khách sạn
Quản lý, cập nhật thông tin nhà hàng
Quản lý, cập nhật thông tin bài viết
Quản lý, cập nhật thông tin tour
Quản lý, cập nhật thông tin đặt tour
Xem, tìm kiếm thông tin
Thông tin người dùng (với người dùng)
Quản lý, cập nhật thông tin người dùng
Xem , tìm kiếm thông tin (với người quản trị)
Biểu đồ luồng dữ liệu mức dưới đỉnh
Biểu đồ phân cấp chức năng 1 : Quản lý xem thông tin
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Các chức năng con
Xem thông tin, bài viết
Tìm kiếm cơ bản
Tìm kiếm nâng cao
Kho dữ liệu
Nội dung Website
Hình 4 : Biểu đồ phân cấp chức năng 1
Tìm kiếm cơ bản
Tìm kiếm nâng cao
TT nội dung Website
NQT
Guess
1
2
3
4
5
6
Xem tt ,bài viết
Hồ sơ dữ liệu :
Xem thông tin
Tìm kiếm thông tin (cơ bản)
Tìm kiếm thông tin (nâng cao)
Tìm kiếm thông tin (cơ bản)
Xem thông tin
Tìm kiếm thông tin (nâng cao)
Biểu đồ phân cấp chức năng 2 : Quản lý bài viết
Tác nhân ngoài :
Guess
Người quản trị Website (NQT)
Các chức năng con :
Thống kê các bài viết được quan tâm nhiều nhất
Thống kê bài viết mới nhất
Thống kê bài viết theo chủ đề
Thêm bài viết
Xóa bài viết
Sửa bài viết
Các kho dữ liệu
Thông tin bài viết
Hình 5 : Biểu đồ phân cấp chức năng 2
Xóa bài viết
TK Bài viết theo chủ đề
TK Bài viết mới nhất
Sửa bài viết
TK Bài viết được quan tâm nhiều nhất
Thêm bài viết
Guess
NQT
Thông tin bài viết
1
2
4
5
6
3
7
8
9
Hồ sơ dữ liệu :
Tìm kiếm, xem thông tin
Tìm kiếm, xem thông tin
Tìm kiếm, xem thông tin
Xóa bài viết
Sửa bài viết
Thêm bài viết
Thống kê
Thống kê
Thống kê
Biểu đồ phân cấp chức năng 3 : Quản lý thông tin các địa điểm du lịch
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Lọc thông tin các địa điểm du lịch
Thêm địa điểm du lịch
Sửa thông tin địa điểm du lịch
Xóa địa điểm du lịch
Các kho dữ liệu
Thông tin các địa điểm du lịch
Thông tin các địa điểm du lịch đã lọc
Hình 6 : Biểu đồ phân cấp chức năng 3
Sửa tt địa điểm du lịch
Xóa địa điểm du lịch
Thêm địa điểm du lịch
Lọc tt địa điểm du lịch
Guess
NQT
TT các địa điểm du lịch
Xem thông tin
TT địa điểm du lịch đã lọc
3
5
4
2
1
6
Hồ sơ dữ liệu
Xóa thông tin
Sứa thông tin
Thêm thông tin
Lọc thông tin
Xem, tìm kiếm thông tin
Xem, tìm kiếm thông tin
Biểu đồ phân cấp chức năng 4 : Quản lý thông tin nhà hàng
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Lọc thông tin nhà hàng
Thêm nhà hàng
Sửa thông tin nhà hàng
Xóa thông tin nhà hàng
Các kho dữ liệu
Thông tin các nhà hàng
Thông tin các nhà hàng đã lọc
Hình 7 : Biểu đồ phân cấp chức năng 4
Sửa tt nhà hàng
Xóa tt nhà hàng
Thêm tt nhà hàng
Lọc tt nhà hàng
Guess
NQT
Thông tin các nhà hàng
Xem thông tin
TT nhà hàng đã lọc
3
5
4
2
1
6
Hồ sơ dữ liệu
Xóa thông tin
Sứa thông tin
Thêm thông tin
Lọc thông tin
Xem, tìm kiếm thông tin
Xem, tìm kiếm thông tin
Biểu đồ phân cấp chức năng 5 : Quản lý thông tin khách sạn
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Lọc thông tin khách sạn
Thêm thông tin khách sạn
Sửa thông tin khách sạn
Xóa thông tin khách sạn
Các kho dữ liệu
Thông tin các khách sạn
Thông tin các khách sạn đã lọc
Hình 8 : Biểu đồ phân cấp chức năng 5
Sửa tt khách sạn
Xóa tt khách sạn
Thêm tt khách sạn
Lọc tt khách sạn
Guess
NQT
Thông tin các khách sạn
Xem thông tin
TT khách sạn đã lọc
3
5
4
2
1
6
Hồ sơ dữ liệu
Xóa thông tin
Sứa thông tin
Thêm thông tin
Lọc thông tin
Xem, tìm kiếm thông tin
Xem, tìm kiếm thông tin
Biểu đồ phân cấp chức năng 6 : Quản lý thông tin các phương tiện du lịch
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Lọc thông tin các phương tiện du lịch
Thêm thông tin các phương tiện du lịch
Sửa thông tin các phương tiện du lịch
Xóa thông tin các phương tiện du lịch
Các kho dữ liệu
Thông tin các phương tiện du lịch
Thông tin các phương tiện du lịch đã lọc
Hình 9 : Biểu đồ phân cấp chức năng 6
Sửa tt phương tiện
Xóa tt phương tiện
Thêm tt phương tiện
Lọc tt các phương tiện DL
Guess
NQT
TTcác phương tiện du lịch
Xem thông tin
TT phương tiện đã lọc
3
5
4
2
1
6
Hồ sơ dữ liệu
Xóa thông tin
Sứa thông tin
Thêm thông tin
Lọc thông tin
Xem, tìm kiếm thông tin
Xem, tìm kiếm thông tin
Biểu đồ phân cấp chức năng 7 : Quản lý thông tin tour
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Lọc thông tin các địa điểm du lịch
Thêm địa điểm du lịch
Sửa thông tin địa điểm du lịch
Xóa địa điểm du lịch
Các kho dữ liệu
Thông tin các địa điểm du lịch
Thông tin các địa điểm du lịch đã lọc
Hình 10 : Biểu đồ phân cấp chức năng 7
Sửa tt tour
Xóa tt tour
Thêm tt tour
Lọc tt tour du lịch
Guess
NQT
Thông tin tour du lịch
Xem thông tin
TT tour đã lọc
3
5
4
2
1
6
Hồ sơ dữ liệu
Xóa thông tin
Sứa thông tin
Thêm thông tin
Lọc thông tin
Xem, tìm kiếm thông tin
Xem, tìm kiếm thông tin
Biểu đồ phân cấp chức năng 8 : Quản lý đặt tour
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng xem thông tin
Các chức năng con
Thống kê thông tin các tour
Xác nhận đặt tour
Sửa thông tin đặt tour
Hủy đặt tour
Các kho dữ liệu
Thông tin tour du lịch
Thông tin tour đã thống kê
Thông tin đặt tour
Hình 11 : Biểu đồ phân cấp chức năng 8
Sửa tt đặt tour
Hủy đặt tour
Xác nhận đặt tour
TK tt các tour
Guess
NQT
Thông tin tour du lịch
Xem thông tin
TT tour đã thống kê
3
5
4
2
1
Thông tin đặt tour
6
Hồ sơ dữ liệu :
Xem, tìm kiếm thông tin
Xác nhận đặt tour
Sửa thông tin đặt tour
Hủy đặt tour
Xem, tìm kiếm thông tin
Thống kê thông tin các tour
Biểu đồ phân cấp chức năng 9 : Quản lý đơn đặt tour
Tác nhân ngoài
Guess
Người quản trị Website (NQT)
Tác nhân trong
Chức năng đặt tour
Các chức năng con
Thống kê tình hình đặt tour
Xem danh sách đơn đặt tour
Xử lý đơn đặt tour
Thông báo kết quả xử lý đơn đặt tour
Các kho dữ liệu
Thông tin đặt tour
Hình 12 : Biểu đồ phân cấp chức năng 9: Quản lý đơn đặt tour
Xem ds đơn đặt tour
Xử lý đơn đặt tour
TK tình hình đặt tour
Guess
NQT
Đặt tour
3
5
4
2
1
Thông tin đặt tour
Thông báo kết quả xử lý đơn đặt tour
6
Hồ sơ dữ liệu
Đặt tour
Thống kê
Xem thông tin
Xử lý thông tin
Kết quả xử lý
Kết quả xử lý (thông báo về với khách hàng)
Biểu đồ phân cấp chức năng 10 : Quản lý người dùng
Tác nhân ngoài
Người quản trị Website (NQT)
Các chức năng con
Đăng nhập
Thêm thông tin
Sửa thông tin
Xóa thông tin
Các kho dữ liệu
Thông tin người dùng
Thông tin NQT
Hình 13 : Biểu đồ phân cấp chức năng 10
Sửa thông tin
Xóa thông tin
Thêm thông tin
Đăng nhập
NQT
Thông tin người dùng
Thông tin NQT
3
4
2
1
Hồ sơ dữ liệu
Đăng nhập
Thêm thông tin
Sửa thông tin
Xóa thông tin
Phân tích hệ thống về dữ liệu
Các thực thể liên kết :
Căn cứ vào hiện trạng của hệ thống ta có các thực thể sau :
Thực thể thứ nhất : Tours : Mỗi thực thể tượng trưng cho 1 tour du lịch.
Các thuộc tính :
Mã tour (Tour_id) : Là trường khóa chính, cho phép phân biệt giữa các tour với nhau.
Tên tour (Tour_name) : Là thuộc tính tương ứng với mã tour.
Loại tour (Tour_kind)
Giới thiệu tour (Tour_introduction)
Nội dung tour (Tour_content) : Cho biết nội dung của tour trong suốt cuộc hành trình.
Ngày bắt đầu (Tour_start) : Là thuộc tính cho biết ngày bắt đầu xuất phát của tour.
Giờ xuất phát (Tour_time) : Là thuộc tính cho biết giờ bắt đầu xuất phát của tour du lịch.
Ngày kết thúc (Tour_end) : Là thuộc tính cho biết ngày kết thúc của tour.
Số chỗ (Tour_volume) : Là thuộc tính cho biết tour đó có thể có bao nhiêu khách tham quan.
Giá tiền đối với người lớn (Tour_price1 ): Cho biết giá tiền tương ứng với mỗi chỗ trong tour dành cho người lớn.
Giá tiền đối với trẻ em (Tour_price2 ): Cho biết giá tiền tương ứng với mỗi chỗ trong tour dành cho trẻ em.
Tổng thời gian (Tour_sum): Cho biết tour đó kéo dài trong thời gian bao lâu..
Hình ảnh tour (Tour_image) : Hiển thị hình ảnh liên quan đến tour đó.
Ghi chú (Tour_note)
Members : mỗi thực thể đại diện cho một thành viên, và cũng tượng trưng cho 1 khách hàng.
Các thuộc tính :
Mã thành viên (Member _id)
Tên đăng nhập thành viên (Member_username)
Mật khẩu đăng nhập (Member_pass)
Họ tên thành viên (Member_fullname)
Ngày tháng năm sinh (Member_birth)
Email (Member_email)
Giới tính (Member_gender)
Số điện thoại liên hệ (Member_phone)
Địa chỉ (Member_address) : Cho biết địa chỉ của thành viên
Số chứng minh thư (Member _identitycard) : Cho biết số chứng minh thư của thành viên..
Tên công ty (Member _company)
Ngày đăng kí (Member_date)
Quyền thành viên (Member_right)
Lần đăng nhập cuối (Member_last) : Cho biết lần đăng nhập cuối của thành viên là khi nào.
Ghi chú (Member_note)
Thực thể thứ 3 : Hotels : Mỗi thực thể tượng trưng cho 1 khách sạn
Các thuộc tính :
Mã khách sạn (Hotel_id) : Là trường khóa chính, phân biệt giữa các khách sạn với nhau.
Hình ảnh khách sạn(Hotel_image) : Hiển thị hình ảnh về khách sạn đó.
Tên khách sạn (Hotel_name) : Cho biết tên của khách sạn, tương ứng với mã khách sạn đã nói ở trên.
Hạng (Hotel_star) : cho biết khách sạn đó thuộc loại nào.
Địa chỉ khách sạn (Hotel_address) : Cho biết địa chỉ của khách sạn đó.
Mã tỉnh (Province_id) : Cho biết khách sạn đó nằm ở tỉnh nào.
Số điện thoại (Hotel_phone) : Cho biết số điện thoại liên hệ của khách sạn đó.
Ghi chú (Hotel_note)
Thực thể thứ 4 : Restaurants : Mỗi thực thể tượng trưng cho một nhà hàng.
Các thuộc tính :
Mã nhà hàng (Restaurant_id) : Là trường khóa chính, cho phép phân biệt giữa các nhà hàng với nhau.
Hình ảnh nhà hàng (Restaurant_image) : Hiển thị hình ảnh về nhà hàng đó.
Tên nhà hàng (Restaurant_name) : Cho biết tên của nhà hàng, tương ứng với mã nhà hàng đã nói ở trên.
Địa chỉ nhà hàng (Restaurant_address) : Cho biết địa chỉ của nhà hàng đó.
Mã tỉnh (Province_id) : Cho biết nhà hàng đó thuộc tỉnh nào.
Số điện thoại (Restaurant_phone) : Cho biết số điện thoại liên hệ của nhà hàng đó.
Ghi chú (Restaurant_note)
Thực thể thứ 5 : Means : Mỗi thực thể tượng trưng cho 1 loại phương tiện.
Các thuộc tính :
Mã phương tiện (Mean_id) : Là trường khóa chính, cho phép phân biệt giữa các phương tiện khác nhau.
Hình ảnh phương tiện (Mean_image) : Hiển thị hình ảnh về phương tiện đó.
Tên phương tiện (Meant_name) : Cho biết tên của phương tiện, tương ứng với mã phương tiện đã nói ở trên.
Loại phương tiện (Meant_category) : Cho biết phương tiện đó là phương tiện gì (cho biết loại của phương tiện).
Hiện trạng (Mean_presentcondition) : Cho biết hiện trạng thực tại của phương tiện đang như thế nào. Còn tốt, đang sử dụng hay đang trong thời gian bảo hành.
Sức chứa của phương tiện (Mean_volume) : Cho biết phương tiện đó có thể chứa tối đa bao nhiêu hành khách.
Điểm khởi hành (Mean_start) : cho biết địa điểm bắt đầu xuất phát của phương tiện.
Điểm kết thúc (Mean_end) : cho biết điểm đến của phương tiện.
Ghi chú (Mean_note)
Thực thể thứ 6 : Locations :Mỗi thực thể tượng trưng cho một địa điểm du lịch.
Các thuộc tính :
Mã địa điểm (Location_id) : Là trường khóa chính, cho phép phân biệt giữa các địa điểm với nhau.
Tên địa điểm (Location_name) : Cho biết tên của địa điểm, tương ứng với mã địa điểm đã nói ở trên.
Hình ảnh (Location_image) : Hiển thị hình ảnh về địa điểm đó.
Mã tỉnh (Province_id) : Cho biết địa điểm đó thuộc tỉnh nào.
Ghi chú (Location_note)
Thực thể thứ 7 : Provinces : Mỗi thực thể tượng trưng cho 1 tỉnh
Các thuộc tính :
Mã tỉnh (Province_id) : Là trường khóa chính, phân biệt giữa các tỉnh với nhau
Tên tỉnh (Province_name) : Cho biết tên tỉnh đó, tương ứng với mã tỉnh đã nói ở trên.
Hình ảnh (Province_image) : Hiển thị hình ảnh về tỉnh đó
Giới thiệu tỉnh (Province_introduction)
Ghi chú (Province_note)
Thực thể thứ 8 : Articles : Mỗi thực thể tượng trưng cho một bài viết
Các thuộc tính :
Mã số bài viết (Article_id) : Là trường khóa chính, phân biệt giữa các bài viết với nhau.
Tên bài viết (Article_name) : Cho biết tên, chủ đề của bài viết, tương ứng với mã bài viết ở trên.
Chủ đề (Article_subject) : Cho biết chủ đề của bài viết
Hình ảnh (Article_image) : Hình ảnh tóm tắt
Nội dung tóm tắt (Article_sumary) : Nội dung tóm tắt của bài viết
Nội dung bài viết (Article_content) : Cho biết nội dung của bài viết.
Ngày gửi (Article_date) : Cho biết ngày gửi bài viết.
Người gửi (Article_member) : Cho biết thành viên gửi bài viết đó.
Trạng thái (Article_status) : Cho biết trạng thái của bài viết : đã được xử lý hay chưa >”<
Người xử lý (Article_processing)
Ngày xử lý (Article_dally)
Ghi chú (Article_note)
Thực thể thứ 9 : Contacts : Lưu trữ những thông tin liên hệ của khách hàng, mỗi thực thể tượng trưng cho một thông tin liên hệ.
Các thuộc tính :
Mã thông tin liên hệ (Contact_id) : Là trường khóa chính, phân biệt giữa các thông tin liên hệ với nhau.
Tiêu đề (Contact_heading) : Tiêu đề, chủ đề của thông tin, tương ứng với mã thông tin liên hệ ở phía trên.
Họ tên người gửi (Contact_name) : Họ tên của người gửi thông tin.
Địa chỉ người gửi (Contact_address) : địa chỉ của người gửi thông tin.
Email người gửi (Contact_email) : Địa chỉ email của người gửi thông tin.
Nội dung thông tin (Contact_content) : Nội dung thông tin mà người dùng muốn gửi đi.
Ngày gửi (Contact_date) : Là ngày mà người dùng gửi cái thông tin liên hệ đó.
Trạng thái (Contact_status) : Là trường xác định xem thông tin này đã được xử lý hay chưa.
Nội dung xử lý (Contact_answer) : Thông tin trả lời từ phía BQT
Ngày xử lý (Contact_time) : Cho biết thời gian thông tin xử lý dc trả về KH.
Người xử lý (Contact_member) : cho biết ai xử lý thông tin liên hệ này.
Ghi chú (Contact_note)
Thực thể thứ 10 : Detail_tours : Chi tiết tour
Các thuộc tính
Mã chi tiết tour (DetailTour_id): Là trường khóa chính
Mã tour (Tour_id) : Là trường khóa.
Mã địa điểm (Location_id) : Là trường khóa.
Mã nhà hàng (Restaurant_id) : Là trường khóa.
Mã khách sạn (Hotel_id) : Là trường khóa.
Mã phương tiện (Mean_id) : Là trường khóa.
Ghi chú (DetailTour_note)
Thực thể thứ 11 : Comments : mỗi thực thể đại diện cho một comment K
Các thuộc tính :
Mã bình luận, đánh giá (Comment _id) : Là trường khoá chính, phân biệt giữa các bình luận của thành viên.
Bài viết (Article_subject)
Người gửi (Member_username)
Ngày gửi (Comment _date)
Nội dung (Comment _content)
Trạng thái (Comment_status)
Ngày xử lý (Comment _day)
Người xử lý (Comment_processer)
Ghi chú (Comment_note)
Thực thể thứ 12 : Requests : mỗi thực thể đại diện cho một đơn đặt tour của khách hàng
Các thuộc tính :
Mã đơn đặt tour (Request_id) : là trường khoá, phân biệt giữa các đơn đặt tour với nhau.
Tên người đặt (Request_ctmname) : Tên khách hàng
Ngày tháng năm sinh (Request_ctmbirth) : Ngày tháng năm sinh của khách hang.
Giới tính (Request_ctmgender: Cho biết giới tính của khách hàng)
Số chứng minh thư (Request_ctmidentitycard) : Cho biết số chứng minh thư của khách hàng.
Email (Request_ctmemail) : Email khách hàng
Địa chỉ (Request_ctmaddress) :Địa chỉ khách hàng
Số điện thoại nhà riêng (Request_ctmphone)
Số điện thoại di động (Request_ctmphonenumber)
Công ty (Request_ctmcompany)
Ngày đặt (Request _day) : Là ngày mà đơn đặt tour được gửi đi.
Số chỗ đặt (Request_capacity) : Là số chỗ mà khách hàng đặt.
Số thành viên là người lớn (Request_man)
Số thành viên là trẻ em (Request_child)
Số thành viên là trẻ nhỏ (Request_baby)
Hình thức thanh toán (Request _unit) : Là hình thức thanh toán của số tiền mà khách hàng phải trả.
Yêu cầu thêm (Request_note)
Thực thể thứ 13 :Invent_tours : Tương ứng với tình trạng đặt tour của khách hàng, cho biết chi tiết đặt tour.
Các thuộc tính
Mã chi tiết đặt tour (InventTour_id) : Là trường khóa chính, phân biệt các đơn đặt tour.
Mã tour (Tour_id) : Là mã của tour mà người dùng đặt.
Mã đơn đặt tour (Request_id) : Là trường khóa.
Trạng thái (InventTour_status) : Cho biết trạng thái của đơn đặt chỗ này : xác định xem nó đã được xử lý hay chưa.
Thành tiền () : Là tổng số tiền mà khách hàng phải trả cho số chỗ mà mình đặt, tùy theo từng tour.
Đã thanh toán (InventTour_payment) : Cho biết là khách hàng đã thanh toán hay chưa.
Người xử lý (InventTour_member)
Ngày xử lý (InventTour_dally) : Ngày mà đơn đặt tour được xử lý.
Thông tin xử lý (InventTour_information)
Ghi chú (InventTour_note)
Mô hình quan hệ :
Chi tiết các bảng :
Tours (Tour_id, Tour_name, Tour_kind, Tour_introduction, Tour_content, Tour_start, Tour_time, Tour_end, Tour_volume, Tour_price1, Tour_price2, Tour_sum, Tour_image, Tour_note).
Members (Member _id, Member_username, Member_pass, Member_fullname, Member_birth, Member_email, Member_gender, Member_phone, Member_address, Member _identitycard, Member _company, Member_date, Member_right, Member_last, Member_note)
Hotels (Hotel_id, Hotel_image, Hotel_name, Hotel_star, Hotel_address, Province_id, Hotel_phone, Hotel_note)
Restaurants (Restaurant_id, Restaurant_image, Restaurant_name, Restaurant_address, Province_id, Restaurant_phone, Restaurant_note)
Means (Mean_id, Mean_image, Meant_name, Meant_category, Mean_presentcondition, Mean_volume, Mean_start, Mean_end, Mean_note)
Locations (Location_id, Location_name, Location_image, Province_id, Location_note)
Provinces (Province_id, Province_name, Province_image, Province_intrduction, Province_note)
Articles (Article_id, Article_name, Article_subject, Article_image, Article_sumary, Article_content, Article_date, Article_member, Article_status, Article_processing, Article_dally, Article_note.)
Contacts (Contact_id, Contact_heading, Contact_name, Contact_address, Contact_email, Contact_content, Contact_date, Contact_status, Contact_answer, Contact_time, Contact_member, Contact_note)
Detail_tours (DetailTour_id, Tour_id, Location_id, Restaurant_id, Hotel_id, Mean_id, DetailTour_note)
Comments (Comment _id, Article_subject, Member_username, Comment _date, Comment_content, Comment_status, Comment _day, Comment_processer, Comment_note)
Requests (Request_id, Tour_id, Request_ctmname, Request_ctmbirth, Request_ctmgender, Request_ctmidentitycard, Request_ctmemail, Request_ctmaddress, Request_ctmphone, Request_ctmphonenumber, Request_ctmcompany, Request _day, Request_capacity, Request_man, Request_child, Request_baby, Request _unit, Request_note)
Invent_tours (InventTour_id, Request_id, InventTour_status, InventTour_cost, InventTour_payment, InventTour_member, InventTour_dally, InventTour_information, InventTour_note)
Mối liên hệ giữa các bảng :
Mối liên hệ giữa bảng Tours và bảng Hotels : Là mối quan hệ nhiều – nhiều : 1 tour có thể nghỉ lại ở nhiều khách sạn trong suốt cuộc hành trình của mình và 1 khách sạn cũng có thể đón tiếp nhiều tour khác nhau.
Tours
Hotels
Mối liên hệ giữa bảng Tours và bảng Restaurants : Là mối quan hệ nhiều – nhiều : 1 tour có thể dừng lại ở nhiều nhà hàng khác nhau trong suốt cuộc hành trình của mình và 1 nhà hàng cũng có thể đón tiếp nhiều tour khác nhau.
Tours
Restaurants
Mối liên hệ giữabảng Tours và bảng Means : Là mối quan hệ nhiều – nhiều : 1 tour có thể đi bằng nhiều loại phương tiện khác nhau trong suốt cuộc hành trình của mình và 1 loại phương tiện cũng có thể có nhiều tour khác nhau đi.
Tours
Means
Mối liên hệ giữa bảng Tours và bảng Locations : Là mối quan hệ nhiều – nhiều : 1 tour có thể đi qua nhiều địa điểm du lịch trong suốt cuộc hành trình của mình và 1 địa điểm cũng có thể đón tiếp nhiều tour du lịch khác nhau đến tham quan.
Tours
Locations
Vì mối quan hệ giữa bảng Tours với bảng Hotels, Restaurants, Means và Localtions là mối quan hệ nhiều - nhiều nên sẽ phải có 1 bảng phụ để liên kết các thuộc tính này.
Tours
Detail_tours
Hotels
Detail_tours
Restaurants
Detail_tours
Means
Detail_tours
Localtions
Detail_tours
Mối liên hệ giữa bảng Invent_Tour và bảng Customers : Là mối quan hệ 1 – nhiều : Tại một thời điểm, một tour có thể có nhiều khách tham quan, nhưng 1 khách hàng thì chỉ có thể tham gia 1 tour.
Invent_Tour
Customers
Mối liên hệ giữa bảng Localtions và bảng Provinces : Là mối quan hệ 1 – nhiều : Một tỉnh có thể có nhiều địa điểm du lịch, nhưng 1 dịa điểm du lịch thì chỉ có thể nằm ở một tỉnh.
Localtions
Provinces
Mối liên hệ giữa bảng Hotels và bảng Provinces : Là mối quan hệ 1 – nhiều : Một tỉnh có thể có nhiều khách sạn, nhưng 1 khách sạn thì chỉ có thể nằm ở một tỉnh.
Hotels
Provinces
Mối liên hệ giữa bảng Restaurants và bảng Provinces : Là mối quan hệ 1 – nhiều : Một tỉnh có thể có nhiều nhà hàng, nhưng 1 nhà hàng thì chỉ có thể nằm ở một tỉnh.
Restaurants
Provinces
Mối liên hệ giữa bảng Members và bảng Articles : Là mối quan hệ 1 – nhiều : Một thành viên có thể gửi nhiều bài viết, nhưng 1 bài viết chỉ có thể được gửi bởi một thành viên.
Members
Articles
Mối liên hệ giữa bảng Members và bảng Contacts : Là mối quan hệ 1 – nhiều : Một thành viên có thể gửi nhiều thông tin , nhưng 1 thông tin chỉ có thể được gửi bởi một thành viên.
Members
Contacts
Mối liên hệ giữa bảng Tours và Invent_tours : Là mối quan hệ 1 – nhiều.
Invent_tours
Tours
Sơ đồ liên kết
Tours
Provinces
Customers
Restaurants
Hotels
Members
Articles
Detail_tours
Invent_tours
Means
Locations
Contacts
1
n
n
n
n
n
n
n
n
n
n
n
1
1
1
1
1
1
1
1
1
1
1
n
Sơ đồ thực thể liên kết :
Mô tả chi tiết cho các quan hệ :
Tours (Tour_id, Tour_name, Tour_kind, Tour_introduction, Tour_content, Tour_start, Tour_time, Tour_end, Tour_volume, Tour_price1, Tour_price2, Tour_sume, Tour_image, Tour_note).
Bảng Tours
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Tour_id
Int
Auto_increment
Primary key
Mã tour (Tour_id) : Là trường khóa chính, cho phép phân biệt giữa các tour với nhau.
2
Tour_name
Varchar
255
Tên tour (Tour_name) : Là thuộc tính tương ứng với mã tour.
3
Tour_kind
Varchar
255
Loại tour (Tour_kind) .
4
Tour_introduction
Text
Giới thiệu tour (Tour_introduction)
5
Tour_content
Text
Nội dung tour (Tour_content) : Cho biết nội dung của tour trong suốt cuộc hành trình.
6
Tour_start
Date
Ngày bắt đầu (Tour_start) : Là thuộc tính cho biết ngày bắt đầu xuất phát của tour.
7
Tour_time
Time
Giờ xuất phát (Tour_time) : Là thuộc tính cho biết giờ bắt đầu xuất phát của tour du lịch.
8
Tour_end
Date
Ngày kết thúc (Tour_end) : Là thuộc tính cho biết ngày kết thúc của tour.
9
Tour_volume
Int
11
Số chỗ (Tour_volume) : Là thuộc tính cho biết tour đó có thể có bao nhiêu khách tham quan.
10
Tour_price1
Varchar
50
Giá tiền đối với người lớn (Tour_price1 ): Cho biết giá tiền tương ứng với mỗi chỗ trong tour dành cho người lớn.
11
Tour_price2
Varchar
50
Giá tiền đối với trẻ em (Tour_price2 ): Cho biết giá tiền tương ứng với mỗi chỗ trong tour dành cho trẻ em.
12
Tour_sum
Varchar
255
Tổng thời gian (Tour_sum): Cho biết tour đó kéo dài trong thời gian bao lâu.
13
Tour_image
Varchar
255
Hình ảnh tour (Tour_image) : Hiển thị hình ảnh liên quan đến tour đó.
14
Tour_note
Varchar
255
Ghi chú (Tour_note)
Members (Member _id, Member_username, Member_pass, Member_fullname, Member_birth, Member_email, Member_gender, Member_phone, Member_address, Member _identitycard, Member _company, Member_date, Member_right, Member_last, Member_note)
Bảng Members
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Member_id
Int
Auto_increment
Primary key
Mã thành viên (Member _id)
2
Member_username
Varchar
50
Tên đăng nhập thành viên (Member_username)
3
Member_pass
Varchar
50
Mật khẩu đăng nhập (Member_pass)
4
Member_fullname
Varchar
50
Họ tên thành viên (Member_fullname)
5
Member_birth
Date
Ngày tháng năm sinh (Member_birth)
6
Member_email
Varchar
255
Email (Member_email)
7
Member_gender
Varchar
50
Giới tính (Member_gender)
8
Member_phone
Varchar
50
Số điện thoại liên hệ (Member_phone)
9
Member_address
Varchar
255
Địa chỉ (Member_address) : Cho biết địa chỉ của thành viên
10
Member _identitycard
Int
50
Số chứng minh thư (Member_identitycard) : Cho biết số chứng minh thư của thành viên..
11
Member _company
Varchar
255
Tên công ty (Member_company)
12
Member_date
Date
Ngày đăng kí (Member_date)
13
Member_right
TinyInt
1
Quyền thành viên (Member_right)
14
Member_last
DateTime
Lần đăng nhập cuối (Member_last) : Cho biết lần đăng nhập cuối của thành viên là khi nào.
15
Member_note
Varchar
255
Ghi chú (Member_note)
Hotels (Hotel_id, Hotel_image, Hotel_name, Hotel_star, Hotel_address, Province_id, Hotel_phone, Hotel_note)
Bảng Hotels
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Hotel_id
Int
Auto_increment
Primary key
Mã khách sạn (Hotel_id) : Là trường khóa chính, phân biệt giữa các khách sạn với nhau.
2
Hotel_image
Varchar
255
Hình ảnh khách sạn(Hotel_image) : Hiển thị hình ảnh về khách sạn đó.
3
Hotel_name
Varchar
255
Tên khách sạn (Hotel_name) : Cho biết tên của khách sạn, tương ứng với mã khách sạn đã nói ở trên.
4
Hotel_star
Varchar
50
Hạng (Hotel_star) : cho biết khách sạn đó thuộc loại nào.
5
Hotel_address
Varchar
255
Địa chỉ khách sạn (Hotel_address) : Cho biết địa chỉ của khách sạn đó.
6
Province_id
Int
11
Foreign key
Mã tỉnh (Province_id) : Cho biết khách sạn đó nằm ở tỉnh nào.
7
Hotel_phone
Varchat
50
Số điện thoại (Hotel_phone) : Cho biết số điện thoại liên hệ của khách sạn đó.
8
Hotel_note
Varchar
255
Ghi chú (Hotel_note)
Restaurants (Restaurant_id, Restaurant_image, Restaurant_name, Restaurant_address, Province_id, Restaurant_phone, Restaurant_note)
Bảng Restaurants
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Restaurant_id
Int
Auto_increment
Primary key
Mã nhà hàng (Restaurant_id) : Là trường khóa chính, cho phép phân biệt giữa các nhà hàng với nhau.
2
Restaurant_image
Varchar
255
Hình ảnh nhà hàng (Restaurant_image) : Hiển thị hình ảnh về nhà hàng đó.
3
Restaurant_name
Varchar
255
Tên nhà hàng (Restaurant_name) : Cho biết tên của nhà hàng, tương ứng với mã nhà hàng đã nói ở trên.
4
Restaurant_address
Varchar
255
Địa chỉ nhà hàng (Restaurant_address) : Cho biết địa chỉ của nhà hàng đó.
5
Province_id
Int
11
Foreign key
Mã tỉnh (Province_id) : Cho biết nhà hàng đó thuộc tỉnh nào.
6
Restaurant_phone
Varchar
50
Số điện thoại (Restaurant_phone) : Cho biết số điện thoại liên hệ của nhà hàng đó.
7
Restaurant_note
Varchar
255
Ghi chú (Restaurant_note)
Means (Mean_id, Mean_image, Meant_name, Meant_category, Mean_presentcondition, Mean_volume, Mean_start, Mean_end, Mean_note)
Bảng Means
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Mean_id
Int
Auto_increment
Primary key
Mã phương tiện (Mean_id) : Là trường khóa chính, cho phép phân biệt giữa các phương tiện khác nhau.
2
Mean_image
Varchar
255
Hình ảnh phương tiện (Mean_image) : Hiển thị hình ảnh về phương tiện đó.
3
Mean_name
Varchar
255
Tên phương tiện (Meant_name) : Cho biết tên của phương tiện, tương ứng với mã phương tiện đã nói ở trên.
4
Mean_category
Varchar
255
Loại phương tiện (Meant_category) : Cho biết phương tiện đó là phương tiện gì (cho biết loại của phương tiện).
5
Mean_presentcondition
Varchar
255
Hiện trạng (Mean_presentcondition) : Cho biết hiện trạng thực tại của phương tiện đang như thế nào. Còn tốt, đang sử dụng hay đang trong thời gian bảo hành.
6
Mean_volume
Int
11
Sức chứa của phương tiện (Mean_volume) : Cho biết phương tiện đó có thể chứa tối đa bao nhiêu hành khách.
7
Mean_start
Varchar
255
Điểm khởi hành (Mean_start) : cho biết địa điểm bắt đầu xuất phát của phương tiện.
8
Mean_end
Varchar
255
Điểm kết thúc (Mean_end) : cho biết điểm đến của phương tiện.
9
Mean_note
Varchar
255
Ghi chú (Mean_note)
Locations (Location_id, Location_name, Location_image, Province_id, Location_note)
Bảng Locations
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Location_id
Int
Auto_increment
Primary key
Mã địa điểm (Location_id) : Là trường khóa chính, cho phép phân biệt giữa các địa điểm với nhau.
2
Location_name
Varchar
255
Tên địa điểm (Location_name) : Cho biết tên của địa điểm, tương ứng với mã địa điểm đã nói ở trên.
3
Location_image
Varchar
255
Hình ảnh (Location_image) : Cho biết hình ảnh về địa điểm đó.
4
Province_id
Int
11
Foreign key
Mã tỉnh (Location_province) : Cho biết địa điểm đó thuộc tỉnh nào.
5
Location_note
Varchar
255
Provinces (Province_id, Province_name, Province_image, Province_introduction,
Province_note)
Bảng Provinces
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Province_id
Int
Auto_increment
Primary key
Mã tỉnh (Province_id) : Là trường khóa chính, phân biệt giữa các tỉnh với nhau
2
Province_name
Varchar
255
Tên tỉnh (Province_name) : Cho biết tên tỉnh đó, tương ứng với mã tỉnh đã nói ở trên.
3
Province_image
Varchar
255
Tên tỉnh (Province_name) : Cho biết tên tỉnh đó, tương ứng với mã tỉnh đã nói ở trên.
4
Province_introduction
Text
Hình ảnh (Province_image) : Hiển thị hình ảnh về tỉnh đó
5
Province_note
Varchar
255
Ghi chú (Province_note)
Articles (Article_id, Article_name, Article_subject, Article_image, Article_sumary, Article_content, Article_date, Article_member, Article_status, Article_processing, Article_dally, Article_note.)
Bảng Articles
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Article_id
Int
Auto_increment
Primary key
Mã số bài viết (Article_id) : Là trường khóa chính, phân biệt giữa các bài viết với nhau.
2
Article_name
Varchar
50
Tên bài viết (Article_name)
3
Article_subject
Varchar
255
Chủ đề của bài viết (Article_subject) :.
4
Article_image
Varchar
255
Hình ảnh tóm tắt (Article_image)
5
Article_sumary
Text
Nội dung tóm tắt (Article_sumary)
6
Article_content
Text
Nội dung bài viết (Article_content) : Cho biết nội dung của bài viết.
7
Article_date
Date
Ngày gửi (Article_date) : Cho biết ngày gửi bài viết.
8
Article_member
Varchar
50
Người gửi (Article_member) : Cho biết thành viên gửi bài viết đó.
9
Article_status
Tinyint
1
Trạng thái (Article_status) : Cho biết trạng thái của bài viết : đã được xử lý hay chưa >”<
10
Article_processing
Varchar
50
Người xử lý (Article_processing)
11
Article_dally
Date
Ngày xử lý (Article_dally)
12
Article_note
Varchar
255
Ghi chú (Article_note)
Contacts (Contact_id, Contact_heading, Contact_name, Contact_address, Contact_email, Contact_content, Contact_date, Contact_status, Contact_answer, Contact_time, Contact_member, Contact_note)
Bảng Contacts
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Contact_id
Int
Auto_increment
Primary key
Mã thông tin liên hệ (Contact_id) : Là trường khóa chính, phân biệt giữa các thông tin liên hệ với nhau.
2
Contact_heading
Varchar
255
Tiêu đề (Contact_heading) : Tiêu đề, chủ đề của thông tin, tương ứng với mã thông tin liên hệ ở phía trên.
3
Contact_name
Varchar
50
Họ tên người gửi (Contact_name) : Họ tên của người gửi thông tin.
4
Contact_address
Varchar
255
Địa chỉ người gửi (Contact_address) : địa chỉ của người gửi thông tin.
5
Contact_email
Varchar
255
Email người gửi (Contact_email) : Địa chỉ email của người gửi thông tin.
6
Contact_content
Text
Nội dung thông tin (Contact_content) : Nội dung thông tin mà người dùng muốn gửi đi.
7
Contact_date
Date
Ngày gửi (Contact_date) : Là ngày mà người dùng gửi cái thông tin liên hệ đó.
8
Contact_status
Tinyint
1
Trạng thái (Contact_status) : Là trường xác định xem thông tin này đã được xử lý hay chưa.
9
Contact_answer
Text
Nội dung xử lý (Contact_answer) : Thông tin trả lời từ phía BQT
10
Contact_time
Date
Ngày xử lý (Contact_time) : Cho biết thời gian thông tin xử lý dc trả về KH.
11
Contact_member
Varchar
50
Người xử lý (Contact_member) : cho biết ai xử lý thông tin liên hệ này.
12
Contact_note
Varchar
255
Ghi chú (Contact_note)
Detail_tours (DetailTour_id, Tour_id, Location_id, Restaurant_id, Hotel_id, Instruction_id, DetailTour_note)
Bảng Detail_tours
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
DetailTour_id
Int
Auto_increment
Primary key
Mã chi tiết tour (DetailTour_id) : Là trường khóa chính
2
Tour_id
Int
11
Foreign key
Mã tour (Tour_id) :
Là trường khóa.
3
Location_id
Int
11
Foreign key
Mã địa điểm (Location_id) :
Là trường khóa.
4
Restaurant_id
Int
11
Foreign key
Mã nhà hàng (Restaurant_id) :
Là trường khóa.
5
Hotel_id
Int
11
Foreign key
Mã khách sạn (Hotel_id):
Là trường khóa.
6
Mean_id
Int
11
Foreign key
Mã phương tiện (Mean_id) :
Là trường khóa.
7
DetailTour_note
Varchar
255
Ghi chú (DetailTour_note)
Comments (Comment _id, Article_subject, Member_username, Comment_date, Comment_content, Comment_status, Comment_day, Comment_processer, Comment_note)
Bảng Comments
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Comment _id
Int
Auto_increment
Primary key
Mã bình luận, đánh giá (Comment _id)
2
Article_subject
Varchar
255
Tên bài viết (Article_subject)
3
Member_username
Varchar
50
Người gửi (Member_name)
4
Comment _date
Date
Ngày gửi (Comment_date)
5
Comment_content
Text
Nội dung (Comment_content)
6
Comment _status
Tinyint
1
Trạng thái (Comment_status)
7
Comment _day
Varchar
255
Ngày xử lý (Comment_day)
8
Comment_processer
Varchar
50
Người xử lý (Comment_processer)
9
Comment_note
Varchar
255
Ghi chú (Comment_note)
Requests (Request_id, Tour_id, Request_ctmname, Request_ctmbirth, Request_ctmgender, Request_ctmidentitycard, Request_ctmemail, Request_ctmaddress, Request_ctmphone, Request_ctmphonenumber, Request_ctmcompany, Request _day, Request_capacity, Request_man, Request_child, Request_baby, Request _unit, Request_note
Bảng Requests
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
Request_id
Int
Auto_increment
Primary key
Mã đơn đặt tour (Request_id) : là trường khoá, phân biệt giữa các đơn đặt tour với nhau.
2
Request_ctmname
Varchar
50
Tên người đặt (Request_ctmname) : Tên khách hàng
3
Request_ctmbirth
Date
Ngày tháng năm sinh (Request_ctmbirth) : Ngày tháng năm sinh của khách hang.
4
Request_ctmgender
Varchar
20
Giới tính (Request_ctmgender: Cho biết giới tính của khách hàng)
5
Request_ctmidentitycard
Varchar
20
Số chứng minh thư (Request_ctmidentitycard) : Cho biết số chứng minh thư của khách hàng.
6
Request_ctmemail
Varchar
255
Email (Request_ctmemail) : Email khách hàng
7
Request_ctmaddress
Varchar
255
Địa chỉ (Request_ctmaddress) :Địa chỉ khách hàng
8
Request_ctmphone
Varchar
20
Số điện thoại nhà riêng (Request_ctmphone)
9
Request_ctmphonenumber
Varchar
20
Số điện thoại di động (Request_ctmphonenumber)
10
Request_ctmcompany
Varchar
255
Công ty (Request_ctmcompany)
11
Request_day
Date
Ngày đặt (Request _day) : Là ngày mà đơn đặt tour được gửi đi.
12
Request_capacity
Int
11
Số chỗ đặt (Request_capacity) : Là số chỗ mà khách hàng đặt.
13
Request_man
Int
11
Số thành viên là người lớn (Request_man)
14
Request_child
Int
11
Số thành viên là trẻ em (Request_child)
15
Request_baby
Int
11
Số thành viên là trẻ nhỏ (Request_baby)
16
Request _unit
Varchar
20
Hình thức thanh toán (Request _unit) : Là hình thức thanh toán của số tiền mà khách hàng phải trả.
17
Request_note
Varchar
255
Yêu cầu thêm (Request_note)
Invent_tours (InventTour_id, Request_id, InventTour_status, InventTour_cost, InventTour_payment, InventTour_member, InventTour_dally, InventTour_information, InventTour_note)
Bảng Invent_tours
STT
Tên thuộc tính
Kiểu dữ liệu
Miền giá trị
Trường
Diễn giải
1
InventTour_id
Int
Auto_increment
Primary key
Mã đặt tour (InventTour_id) : Là trường khóa chính, phân biệt các đơn đặt tour.
2
Tour_id
Int
11
Foreign key
Mã tour (Tour_id) : Là mã của tour mà người dùng đặt.
3
Request_id
Int
11
Foreign key
Mã đơn đặt tour (Request_id) : Là trường khóa.
4
InventTour_status
TinyInt
1
Trạng thái (InventTour_status) : Cho biết trạng thái của đơn đặt chỗ này : xác định xem nó đã được xử lý hay chưa.
5
InventTour_cost
Varchar
50
Thành tiền (InventTour_cost) : Là tổng số tiền mà khách hàng phải trả cho số chỗ mà mình đặt, tùy theo từng tour.
6
InventTour_payment
TinyInt
1
Đã thanh toán (InventTour_payment) : Cho biết là khách hàng đã thanh toán hay chưa.
7
InventTour_member
Varchar
50
Người xử lý (InventTour_member)
8
InventTour_dally
Date
Ngày xử lý (InventTour_dally) : Ngày mà đơn đặt tour được xử lý
9
InventTour_information
Text
Thông tin xử lý (InventTour_information)
10
InventTour_note
Varchar
255
Ghi chú (InventTour_note)
Tạo bảng :
Bảng Tours
Bảng Restaurants
Bảng Provinces
Bảng Members
Bảng Means
Bảng Locations
Bảng Invent_Tours
Bảng Hotels
Bảng Detail_tour
Bảng Contacts
Bảng Articles
Bảng Customers
Thiết Kế Giao Diện
Thiết kế giao diện chương trình :
Chương trình được chia ra làm 2 phần chính là giao diện bên User và giao diện quản trị bên phía Admin. Người quản trị sẽ thực hiện các công tác quản trị của mình trên trang Admin này và các thông tin sẽ được hiển thị lên giao diện về phía người dùng.
Về phía bên quản trị :
Menu quản lý bao gồm có các chức năng quản lý sau :
Về phía bên người dùng :
Menu chính bao gồm các thành phần sau :
Khác với trang quản trị, trang giao diện người dùng cho phép khách hàng có thể xem , tìm kiếm thông tin, gửi yêu cầu hay đặt tour mà không bắt buộc phải đăng kí làm thành viên của Website.
Cài đặt và kiểm thử
Tìm hiểu công nghệ
Về CakePHP Framework
CakePHP là gì ? Các tính năng của nó :
CakePHP là một framework mã nguồn mở và miễn phí cho PHP, mục đích của nó là cung cấp một framework cho người sử dụng PHP phát triển những ứng dụng web nhanh, mạnh mà không làm mất tính linh hoạt của nó.. Có thể coi nó là một thư viện cho lập trình viên dùng để tạo ra một ứng dụng web.
CakePHP cung cấp tất cả các công cụ với một tiêu chí: cho các lập trình viên có thể hoàn toàn không phải nghĩ đến những điều quá vụn vặt, mà chỉ áp dụng logic nghiệp vụ của họ vào chương trình, bằng cách sử dụng các công cụ của CakePHP.
CakePHP có một đội ngũ phát triển và một cộng đồng năng động, mang lại giá trị rất lớn cho dự án. Ngoài giúp cho người lập trình không phải viết lại rất nhiều code, việc sử dụng CakePHP mang lại cho ứng dụng web một cái lõi đã được kiểm tra rất kỹ lưỡng và không ngừng phát triển.
Các tính năng chính của CakePHP :
Có khả năng tương thích PHP 4 và 5.
Tích hợp các thao tác CRUD với CSDL: các thao tác Thêm/Xem/Sửa/ Xóa được hỗ trợ thực hiện tự động.
Có khả năng tự hiểu và nhận biết một số tên trường dữ liệu (created, modified, username, password...). Ngoài ra, với CakePHP, chỉ cần tuân theo quy ước đặt tên đối với các bảng và các trường dữ liệu, CakePHP đã có thể hỗ trợ rất nhiều thao tác và bảo đảm toàn vẹn dữ liệu
Cung cấp khả năng tự sinh mã lệnh: khả năng này hỗ trợ lập trình viên có thể bỏ qua một số câu lệnh phải lặp đi lặp lại nhiều lần.
Bộ biên dịch yêu cầu với URL rất thân thiện và rõ ràng, dễ hiểu: giúp cho các yêu cầu theo dạng QueryString trở nên dễ đọc hơn.
Tích hợp bộ kiểm tra dữ liệu đầu vào: VD như kiểm tra địa chỉ email phải có @, hay một trường nào đó không được trống, số điện thoại không được bao gồm chữ...
Áp dụng khuân mẫu dễ dàng và linh hoạt: có thể thay đổi và áp dụng các khuân mẫu một cách nhanh chóng.
Cung cấp các Helper hỗ trợ AJAX và Javascript, HTML Form và hơn thế nữa, giúp cho các lập trình viên có thể dễ dàng viết các thẻ HTML và Javascript một cách nhanh chóng và đúng cú pháp.
Cung cấp các Component hỗ trợ Email, Cookie, Security, Session và Request Handling.
Hỗ trợ Danh sách Điều khiển Truy cập linh hoạt.
Cung cấp một thư viện giúp chống các lỗi liên quan đến Injection.
Caching linh hoạt.
Hỗ trợ bản địa hóa: cung cấp giải pháp và các thư viện liên quan để có thể thay đổi ngôn ngữ một cách linh hoạt và triệt để.
Hoạt động trong bất kỳ thư mục web nào, với rất ít hoặc hoàn toàn không cần cấu hình Apache.
CakePHP và mô hình MCV :
CakePHP là một framework, hoạt động tương tự mô hình 3 lớp MVC trong lập trình hướng đối tượng, với tầng trên cùng là tầng View, tầng tiếp theo là tầng Controller và tầng cuối cùng là tầng Model. Tầng Model sẽ là tầng giao tiếp với cơ sở dữ liệu và tầng View là tầng giao tiếp với người sử dụng.
Hay nói cách khác thì MVC là mô hình gồm 3 thành phần:
Model: Truy vấn dữ liệu
View: Hiển thị dữ liệu và nhập liệu
Controller: Xử lý nghiệp vụ
Mô hình MVC (hay MCV) là mẫu kiến trúc được sử dụng trong công nghệ phát triển phần mềm. Điểm thành công của mô hình này là làm tách rời giữa logic của chương trình với giao diện của người sử dụng. Mô hình giúp người ta có thể tạo ra một ứng dụng mà trong đó, ta có thể dễ dàng thay đổi logic của chương trình hay chỉnh sửa giao diện của người dùng mà hoàn toàn không ảnh hưởng đến nhau.
MVC là viết tắt của Model – View – Controller.
Để nhanh chóng tiếp cận được mô hình MVC, ta xem xét quy trình xây dựng một ứng dụng web theo mô hình MVC, sử dụng PHP, MySQL gồm các bước như sau:
Xây dựng CSDL
Đầu tiên, ta xây dựng CSDL (Database) trên một hệ quản trị CSDL MySQL. Có nghĩa là, ta tạo các bảng và các trường trong các bảng đó. Việc tạo này hoàn toàn là trên MySQL, không hề liên quan đến PHP.
Xây dựng các lớp Model (Model classes)
Lớp model được hiểu là lớp dùng để liên kết ngôn ngữ lập trình với hệ quản trị CSDL (ở đây lần lượt là PHP và MySQL).
Ở các lớp model, ta sẽ thông báo cho ngôn ngữ lập trình biết về các bảng dữ liệu và mối quan hệ giữa chúng.
Thường thì, mỗi bảng dữ liệu trong CSDL sẽ ứng với một Model.
Xây dựng các lớp Controller
Các lớp controller là các yếu tổ điều khiển dữ liệu trong các bảng. VD như là các thao tác Thêm, Sửa, Xóa.
Như vậy, mỗi lớp Model đều phải có một lớp Controller tương ứng. Và mỗi thao tác đối với một bảng dữ liệu (hay đối với lớp Model) đều phải được khai báo trong Controller tương ứng với Model của dữ liệu đó.
Xây dựng các View
View chính là thành phần hiển thị ra cho người sử dụng. View được xây dựng như các template.
View được xây dựng sử dụng các biến chứa nội dung cần đưa ra.
VD :
Ở trên, biến $view_content chính là biến chứa nội dung cần đưa ra. Giá trị các biến chứa nội dung thì được truyền từ các controller.
Download, cài đặt và sử dụng CakePHP :
Download
Download về tại địa chỉ (Chọn bản 1.2.6) :
Sau khi download CakePHP, ta sẽ có 3 thư mục chính :
Thư mục app sẽ là nơi chúng ta đặt các dòng lệnh: đây là nơi mà ta sẽ phát triển ứng dụng.
Thư mục cake là thư mục chứa các dòng lệnh mà các nhà phát triển CakePHP đã làm cho chúng ta. Đó là lõi của CakePHP.
Cuối cùng, thư mục vendors là nơi ta có thể đặt các thư viện PHP khác mà có thể ta cần trong ứng dụng CakePHP của mình.
Thư mục app là nơi ta sẽ phát triển ứng dụng :
Config : Lưu trữ một vài file cấu hình mà CakePHP sử dụng. Thông tin kết nối CSDL, file cấu hình lõi và các file khác có thể được lưu trữ ở đây.
Controllers : Chứa các controller của ứng dụng và các components của chúng.
Locale : Chứa các file chứa chuỗi sử dụng cho quốc tế hóa ứng dụng.
Models : Chứa các model của ứng dụng, các behavior và các nguồn dữ liệu (datasources).
Plugins : Chứa các gói mở rộng (plugin).
Tmp : Đây là nơi CakePHP chứa các dữ liệu tạm. Dữ liệu thực tế được lưu trữ ở đây phụ thuộc vào CakePHP được cấu hình thế nào, nhưng thư mục này thường được sử dụng để lưu các mô tả về các model, nhật ký, và đôi khi là các thông tin về session.
Vendors : Mọi class hay thư viện nào khác phải được đặt ở đây. Điều đó sẽ giúp cho chúng có thể được truy cập sử dụng hàm App::import('vendor', 'name'). Thư mục này hoàn toàn khác với thư mục vendors đã nói ở trên. Ta sẽ thấy rõ điều này khi quản lý nhiều ứng dụng và việc cài đặt các hệ thống phức tạp.
Views : Các file trình diễn được đặt ở đây: elements, trang báo lỗi, helpers, layours, và các file view.
Webroot : Khi cài đặt ứng dụng, thư mục này đóng vai trò là thư mục gốc của ứng dụng. Các thư mục con được tạo ra để chỉ dẫn cho các file CSS, hình ảnh và Javascript.
Cài đặt & cấu hình cho Cake :
Để sử dụng nó, cần phải đáp ứng những yêu cầu sau:
Một HTTP Server (vd như Apache, IIS)
CakePHP chỉ support trong PHP ver 4 trở lên.
Database: cake hổ trợ các hệ cơ sở dữ liệu sau: MySql, PostgreSQL.
Sau khi download cakephp về, bạn giải nén tập tin đó ra (.zip) và sao chép vào thư mục chứa Apache Server
(vd: C:\AppServ\www\MyCake). VD:
/path_to_document_root
/app
/cake
/docs
/vendors
.htaccess
index.php
Hoặc copy vào thư mục htdoc của Xampp nếu bạn dừng xam ( ở đây mình dùng Xampp :D )
Cấu hình :
Để Cake có thể làm việc được với database, cần cấu hình lại trang database.php, mặc định trang này không có.
Để cấu hình lại trang này ta làm như sau :
Mở file database.php.default ở trong thư mục .../app/config và Save As lại thành1 file mới : database.php và điều chỉnh lại các thông số sau :
var $default = array( 'driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'project_name',
'schema' => '' ,
'prefix' => '' ,
'encoding' => ''
Với user, password, database lần lượt là tên user, password và database ở trong MySQL.
Quy ước về đặt tên bảng trong database :
Tên bảng trong Cake nên ở dạng tiếng anh số nhiều ( Vd : Users, Customers, Admins….)
Bảng phải có primary key tên là ‘id’
Nếu có sử dụng quan hệ trong các bảng ( vd : User_id…)
Sau khi cài đặt và cấu hình CakePHP, bạn test thử bằng cách mở webbrowser lên và gõ : ,(Ở đây MyCake là tên của CakePHP đặt trong thư mục htdoc của tôi)
Nếu thấy hiện lên giao diện như sau thì có nghĩa là bạn đã thành công rồi đó :
Chú ý 2 cái dòng :
Your database configuration file is present.
Cake is able to connect to the database.
Nếu được như vậy thì bạn đã cấu hình Cake thành công và kết nối được với database rồi đó
Chú ý một chút trong trường hợp nếu như bạn gặp phải một cái lỗi tương tự thế này :
Thì bạn tìm đến file : app/config/core.php để thay đổi giá trị Security.salttìm ở dòng 151 :
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
Xóa cái đoạn
'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
đi và sửa lại thành :
Configure::write(’Security.salt’,‘wihaamtnaortedyooiundgoainnygthheirnegqzwxecrvtbyn’);
Và bây giờ thì Cake của bạn có thể chạy bất kì cấu hình nào.
Như vậy là chúng ta đã cài đặt và cấu hình xong CakePHP rồi. Còn sử dụng như thế nào là tùy bạn. :D
Đánh giá ưu khuyết điểm
Ưu điểm :
Các chức năng tương đối đầy đủ.
Khuyết điểm :
Chưa hoàn chỉnh.
Giao diện chưa đẹp.
Chưa linh hoạt để phát triển thêm.
Một số chỗ còn chưa rõ ràng.
Hướng phát triển :
Hoàn thiện và nâng cấp chương trình
.
Kết Luận
Sau một thời gian tìm hiểu và làm việc, em đã cơ bản xây dựng được một website giới thiệu du lịch với một số chức năng cơ bản cần có của 1 website về du lịch cũng như cách sử dụng các công cụ để xây dựng nên nó. Và theo đó em cũng đã tìm hiểu được phần nào cách thức sử dụng và cấu hình CakePHP Framewok.
Hướng phát triển của đề tài trong thời gian tới của em là xây dựng một hệ thống hoàn chỉnh có đầy đủ các chức năng hơn, đảm bảo yêu cầu của 1 hệ thống website giới thiệu doanh nghiệp.
Tuy nhiên , trong quá trình tìm hiểu và thiết kế hệ thống còn 1 số hạn chế nên không thể tránh khỏi sai sót. Vì thế nên em mong thầy góp ý để lần sau em có thể làm tốt hơn. Em xin chân thành cảm ơn.
Tài Liệu Tham Khảo
Website :
Tài liệu :
- Lập trình web động với PHP và MySQL - Tống Phước Khải
- Phân tích và thiết kế hệ thống thông tin - Thạc Bình Cường
- Và một số tài liệu khác…
Các file đính kèm theo tài liệu này:
- Báo cáo thực tập tốt nghiệp.doc