4.3. Chức năng yêu thích, lưu lại thơng tin bài viết quan tâm
Chức năng Chức năng u thích, lưu lại thơng tin bài viết
Mơ tả Lưu trữ các bài viết quan tâm để xem lại.
Mục đích Truy xuất nhanh các bài viết mình cần quan tâm.
Khó khăn gặp phải
- Người dung lưu nhiều thông tin dẫn đến bị nhầm lẫn giữa các bài viết
Giải pháp - Thêm bộ lọc, lưu trữ thêm thơng tin về thời gian, chú thích
22
4.4. Chức năng recommend bài viết
Chức năng Hiển thị tự động bài viết khuyến khích cho người dùng
Mô tả Hiển thị một số loại bài viết tương tự mà người dùng đã quan
tâm trước đó
Mục đích Dễ dàng tiếp cận các sản phẩm quan tâm.
Khó khăn gặp phải
- Xử lí thơng tin khơng chính xác
- Cần phải thơng qua dữ liệu của người dùng sau một thời gian sử dụng
Giải pháp - Tối ưu thuật toán
Bảng 4.4: Đặc tả chức năng recommend bài viết
4.5. Chức năng quản lý người dùng
Chức năng Quản lý thông tin người dùng
Mô tả Quản lý thông tin, lịch sử quan tâm,.. của người dùng trong hệ
thống
Mục đích Biết được nhu cầu, dễ dàng đáp ứng nhu cầu của người dùng
Khó khăn gặp phải
- Phân loại người dùng
Giải pháp - Phân chia dựa theo số lượng quan tâm bài viết của người dùng
Bảng 4.5: Đặc tả chức năng quản lý người dùng
4.6. Chức năng quản lý bài viết
Chức năng Quản lý bài viết
Mô tả Quản lý thông tin bài viết, cho phép duyệt, từ chối đến những
bài viết không đạt yêu cầu
Mục đích Đảm bảo thơng tin, tính xác thực của bài viết
Khó khăn gặp phải
- Phân loại khơng chính xác bài viết
Giải pháp - Cho phép người dùng gửi lại thơng tin bài viết kèm lí do để
quản trị viên xem xét
Bảng 4.6: Đặc tả chức năng quản lý bài viết
4.7. Chức năng quản lý các báo cáo
Chức năng Quản lý báo cáo, thống kê
23 viết, …
Mục đích Dễ dàng tổng kết, quản lí thơng tin của hệ thống
Khó khăn gặp phải
- Thống kê cần phải chi tiết và chính xác
Giải pháp - Chia nhỏ thống kê và tối ưu thuật toán
Bảng 4.7: Đặc tả chức năng quản lý báo cáo
4.8. Chức năng cập nhật mục tiêu tìm kiếm
Chức năng Cập nhật mục tiêu tìm kiếm của người dùng
Mơ tả
Người dùng có thể đưa ra được mục tiêu, mong muốn tìm kiếm bất động sản của bản thân. Từ địa điểm, giá cả, diện tích, … từ đó hệ thống sẽ đưa ra những lựa chọn phù hợp với người dùng
Mục đích - Hệ thống phân loại và đưa ra những sản phẩm phù hợp với
mục tiêu tìm kiếm của các nhân
Khó khăn gặp phải
- Người dùng cần cung cấp đầy đủ thông tin. Càng chi tiết thì hệ thống sẽ càng đưa ra những bất động sản càng phù hợp hơn đối với người dùng
Giải pháp - Tối ưu thuật toán
Bảng 4.8: Đặc tả chức năng cập nhật mục tiêu tìm kiếm
4.9. Chức năng hiển thị độ phù hợp của bất động sản đối với người dùng
Chức năng Hiển thị đồ phù hợp của bất động sản đối với người dùng
Mô tả
Dựa trên mục tiêu của từng người dùng hệ thống sẽ phân tích và đưa ra được phần trăm độ phù hợp của từng bất động sản đối với người dùng.
Mục đích - Người dùng sẽ dễ dàng có cái nhìn tổng quan hơn, dễ dàng tìm
kiếm được bất động sản phù hợp với mong muốn của bản thân
Khó khăn gặp phải
- Cần phải nâng cao độ chính xác để đưa ra được độ phù hợp chuẩn xác đối với người dùng
Giải pháp - Tối ưu thuật toán
Bảng 4.9: Đặc tả chức năng hiển thị độ phù hợp của bất động sản đối với người dùng
4.10. Chức năng thống kê tổng quát bất động sản
Chức năng Thống kê tổng quát bất động sản dưới dạng biểu đồ
Mô tả
Hệ thống sẽ thống kê số lượng bất động sản dựa trên các yếu tốt như địa điểm, giá cả, diện tích để người dùng có cái nhìn tổng qt hơn, đồng thời đưa ra những sản phẩm nổi bật phù hợp với
24
người dùng cho phép người dùng dễ dàng lựa chọn
Mục đích - Người dùng có thể khảo sát, xem xét được tổng quát các bất
động sản để đưa ra quyết định phù hợp với nhu cầu của mình
Khó khăn gặp phải
- Cần tối ưu hóa biểu đồ để người dùng có cách nhìn trực quan hơn
Giải pháp - Hiển thị 3 dạng biểu đồ: đường, cột, radar để người dùng dễ
dàng quan sát
25
Chương 5. THIẾT KẾ DỮ LIỆU
5.1. Sơ đồ cơ sở dữ liệu
Hình 5.1: Sơ đồ cơ sở dữ liệu
5.2. Mô tả chi tiết các bảng
5.2.1. Bảng “user” – Tài Khoản người Dùng
Z` Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính ID định danh của bảng user
2 username varchar Bắt buộc nhập Tên đăng nhập của người dùng
26
3 password varchar Bắt buộc nhập Mật khẩu của người dùng
4 first_name varchar Tên người dùng 5 last_name varchar Họ người dùng 6 full_name varchar Họ tên đầy đủ của
người dùng
7 gender varchar Giới tính của người dùng
8 email varchar Email của người dùng 9 avatar varchar Ảnh đại diện của
người dùng 10 description varchar Mô tả người dùng 11 phone varchar Số điện thoại người 12 is_deleted boolean Xác định đối tượng đã
xóa hay chưa
13 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
14 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
15 created_at date Thời gian khởi tạo đối tượng
16 updated_at date Thời gian cập nhật đối tượng
27
Bảng 5.1: Mô tả bảng “user” – Thông tin người dùng
5.2.2. Bảng “role” – Vai trị của người dùng
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id varchar Khóa chính ID định danh của bảng role
2 description varchar Mơ tả chi tiết vai trị 3 is_deleted boolean Xác định đối tượng đã
xóa hay chưa
4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
6 created_at date Thời gian khởi tạo đối tượng
7 updated_at date Thời gian cập nhật đối tượng
Bảng 5.2: Mơ tả bảng “role” – Vai trị của người dùng
5.2.3. Bảng “privilege” – Quyền hạn có trong hệ thống
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id varchar Khóa chính ID định danh của bảng privilege 2 description varchar Mô tả chi tiết quyền
28
3 is_deleted boolean Xác định đối tượng đã xóa hay chưa
4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
6 created_at date Thời gian khởi tạo đối tượng
7 updated_at date Thời gian cập nhật đối tượng
Bảng 5.3: Mơ tả bảng “privilege” – Quyền hạn có trong hệ thống
5.2.4. Bảng “role_privilege” – Quyền hạn của vai trị
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 role_id varchar Khóa chính, Khóa ngoại
ID định danh của bảng role_privilege, khóa ngoại trỏ tới bảng role
2 privilege_id varchar Khóa chính, Khóa ngoại
ID định danh của bảng role_privilege, khóa ngoại trỏ tới bảng privilege
3 is_deleted boolean Xác định đối tượng đã xóa hay chưa
29
4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
6 created_at date Thời gian khởi tạo đối tượng
7 updated_at date Thời gian cập nhật đối tượng
Bảng 5.4: Mơ tả bảng “role_privilege” – Quyền hạn của vai trị
5.2.5. Bảng “user_address” – Địa chỉ của người dùng
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính, Khóa ngoại
ID định danh của bảng user_address, quan hệ 1-1 với bảng user
2 address varchar Bắt buộc nhập Mô tả chi tiết địa chỉ người dùng
3 country_id varchar Khóa Ngoại, Bắt buộc nhập
Khóa ngoại trỏ đến bảng country, cho biết người dùng thuộc quốc gia nào 4 province_id int Khóa Ngoại, Bắt
buộc nhập
Khóa ngoại trỏ đến bảng province, cho
30
biết người dùng thuộc tỉnh, thành phố nào 5 district_id int Khóa Ngoại, Bắt
buộc nhập
Khóa ngoại trỏ đến bảng district, cho biết người dùng thuộc xã, huyện nào
Bảng 5.5: Mô tả bảng “user_address” – Địa chỉ của người dùng
5.2.6. Bảng “country” – Quốc gia
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 code varchar Khóa chính ID định danh của bảng country 2 name varchar Bắt buộc nhập Tên quốc gia 3 phone_code int Bắt buộc nhập Mã code điện thoại
của quốc gia
Bảng 5.6: Mô tả bảng “country” – Quốc gia
5.2.7. Bảng “province” – Tỉnh, Thành Phố
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id id Khóa chính ID định danh của bảng province
2 is_city boolean Bắt buộc nhập Kiểm tra đối tượng có phải thành phố hay khơng
3 name varchar Bắt buộc nhập Tên của tỉnh, thành phố
31
4 short_name varchar Bắt buộc nhập Tên rút gọn của tỉnh, thành phố
5 country_id varchar Khóa ngoại, Bắt buộc nhập
Khóa ngoại trỏ đến bảng country, cho biết tỉnh, thành phố thuộc quốc gia nào
Bảng 5.7: Mô tả bảng “province” – Tỉnh, Thành Phố
5.2.8. Bảng “district” – Xã, Huyện
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id id Khóa chính ID định danh của bảng district 2 name varchar Bắt buộc nhập Tên của xã, huyện 3 short_name varchar Bắt buộc nhập Tên rút gọn của xã,
huyện 4 province_id int Khóa ngoại, Bắt
buộc nhập
Khóa ngoại trỏ đến bảng province, cho biết xã, huyện thuộc tỉnh, thành phố nào
Bảng 5.8: Mô tả bảng “district” – Xã, Huyện
5.2.9. Bảng “apartment” – Thông tin bất động sản
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính ID định danh của bảng apartment
2 area double Bắt buộc nhập Diện tích bất động sản 3 title varchar Bắt buộc nhập Tiêu đề bất động sản
32
4 expired_date date Bắt buộc nhập Ngày hết hạn (đóng bài viết) bất động sản 5 overview varchar Bắt buộc nhập Tổng quan của bài
viết
6 price double Giá bất động sản tính theo đơn vị m2
7 total_price double Bắt buộc nhập Tổng giá của bất động sản
8 type_apartment varchar Bắt buộc nhập Loại bất động sản (BUY/RENT) 9 highlight boolean Bất động sản nổi bật 10 status varchar Trạng thái bất động
sản
11 photos varchar Bắt buộc nhập Danh sách hình ảnh của bất động sản 12 author_id int Khóa ngoại Khóa ngoại trỏ đến
bảng user, tác giả của bất động sản
13 category_id int Khóa ngoại, Bắt buộc nhập
Khóa ngoại trỏ đến bảng category, thể loại bất động sản 14 is_deleted boolean Xác định đối tượng đã
33
15 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
16 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
17 created_at date Thời gian khởi tạo đối tượng
18 updated_at date Thời gian cập nhật đối tượng
Bảng 5.9: Mô tả bảng “apartment” – Thông tin bất động sản
5.2.10. Bảng “apartment_detail” – Thông tin chi tiết bất động sản
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính, khóa ngoại ID định danh của bảng apartment_detail, quan hệ 1-1 với bảng apartment
2 balcony_direction varchar Bắt buộc nhập Hướng ban công của bất động sản
3 bathroom_quantity int Bắt buộc nhập Số lượng phòng tắm của bất động sản 4 bedroom_quantity int Bắt buộc nhập Số lượng phòng ngủ
của bất động sản 5 description varchar Bắt buộc nhập Mô tả chi tiết bất
34
6 entrance_building varchar Bắt buộc nhập Hướng cổng vào bất động sản
7 floor_quantity int Bắt buộc nhập Số lượng tầng của bất động sản
8 front_building varchar Bắt buộc nhập Hướng mặt trước của bất động sản
9 furniture varchar Bắt buộc nhập Nội thất của bất động sản
10 house_direction varchar Bắt buộc nhập Hướng nhà bất động sản
11 toilet_quantity int Bắt buộc nhập Số phòng vệ sinh của bất động sản
Bảng 5.10: Mô tả bảng “apartment_detail” – Thông tin chi tiết bất động sản
5.2.11. Bảng “apartment_address” – Địa chỉ bất động sản
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính, Khóa ngoại ID định danh của bảng apartment_address, quan hệ 1-1 với bảng apartment
2 address varchar Bắt buộc nhập Mô tả chi tiết địa chỉ bất động sản
3 country_id varchar Khóa Ngoại, Bắt buộc nhập
Khóa ngoại trỏ đến bảng country, cho biết bất động sản thuộc quốc gia nào
35
4 province_id int Khóa Ngoại, Bắt buộc nhập Khóa ngoại trỏ đến bảng province, cho biết bất động sản thuộc tỉnh, thành phố nào
5 district_id int Khóa Ngoại, Bắt buộc nhập
Khóa ngoại trỏ đến bảng district, cho biết bất động sản thuộc xã, huyện nào
Bảng 5.11: Mô tả bảng “apartment_address” – Địa chỉ của bất động sản
5.2.12. Bảng “category” – Thể loại bất động sản
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id varchar Khóa chính ID định danh của bảng category
2 name varchar Mô tả tên của thể loại 3 is_deleted boolean Xác định đối tượng đã
xóa hay chưa
4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
6 created_at date Thời gian khởi tạo đối tượng
36
7 updated_at date Thời gian cập nhật đối tượng
Bảng 5.12: Mô tả bảng “category” – Thể loại bất động sản
5.2.13. Bảng “favourite” – Danh sách bất động sản yêu thích của người dùng dùng
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 apartment_id int Khóa chính, Khóa ngoại
ID định danh của bảng favourite, khóa ngoại trỏ tới bảng apartment
2 user_id int Khóa chính, Khóa ngoại
ID định danh của bảng favourite, khóa ngoại trỏ tới bảng user 3 is_deleted boolean Xác định đối tượng đã
xóa hay chưa
4 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
5 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
6 created_at date Thời gian khởi tạo đối tượng
7 updated_at date Thời gian cập nhật đối tượng
37
5.2.14. Bảng “tracking_category” – Danh sách thông tin tracking của người dùng đối với thể loại
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính ID định danh của bảng
tracking_category 2 ip varchar Bắt buộc nhập Địa chỉ IP của người
dùng
3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với thể loại này 4 user_id int Khóa ngoại Khóa ngoại trỏ đến
bảng user
5 category_id int Khóa ngoại Khóa ngoại trỏ đến bảng category
6 is_deleted boolean Xác định đối tượng đã xóa hay chưa
7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
9 created_at date Thời gian khởi tạo đối tượng
38
10 updated_at date Thời gian cập nhật đối tượng
Bảng 5.14: Mô tả bảng “tracking_category” – Thông tin tracking của người dùng đối với category
5.2.15. Bảng “tracking_district” – Danh sách thông tin tracking của người dùng đối với huyện/xã người dùng đối với huyện/xã
STT Tên thuộc tính Kiểu Ràng Buộc Ý nghĩa, ghi chú
1 id int Khóa chính ID định danh của bảng tracking_ district 2 ip varchar Bắt buộc nhập Địa chỉ IP của người
dùng
3 rating int Bắt buộc nhập Tổng số điểm của người dùng quan tâm đối với huyện,xã này 4 user_id int Khóa ngoại Khóa ngoại trỏ đến
bảng user
5 district_id int Khóa ngoại Khóa ngoại trỏ đến bảng district
6 is_deleted boolean Xác định đối tượng đã xóa hay chưa
7 created_by int Khóa ngoại Khóa ngoại thể hiện người khởi tạo đối tượng
8 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
39
9 created_at date Thời gian khởi tạo đối tượng
10 updated_at date Thời gian cập nhật đối tượng
Bảng 5.15: Mô tả bảng “tracking_ district” – Thông tin tracking của người dùng đối với