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 xã, huyện
5.2.16. Bảng “tracking_province” – Danh sách thông tin tracking của người dùng đối với quận/thành phố người dùng đối với quận/thành phố
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_province 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 quận. thành phố này
4 user_id int Khóa ngoại Khóa ngoại trỏ đến bảng user
5 province_id int Khóa ngoại Khóa ngoại trỏ đến bảng province
6 is_deleted boolean Xác định đối tượng đã xóa hay chưa
40
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
10 updated_at date Thời gian cập nhật đối tượng
Bảng 5.16: Mô tả bảng “tracking_ province” – Thông tin tracking của người dùng đối với tỉnh, thành phố
5.2.17. Bảng “user_target” – Thông tin mục tiêu 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 ID định danh của bảng user_target 2 area double Mục tiêu về diện tích 3 bathroom_quantity int Mục tiêu về số lượng
phòng vệ sinh
4 bedroom_quantity int Mục tiêu về số lượng phòng ngủ
5 category int Mục tiêu về thể loại 6 district int Mục tiêu về địa điểm
41
7 floor_quantity int Mục tiêu về số lượng tầng
8 price double Mục tiêu về giá 9 province int Mục tiêu về địa điểm
tỉnh, thành phố 10 user_id int Khóa ngoại Khóa ngoại xác định
mục tiêu của người dùng nào
11 is_deleted boolean Xác định đối tượng đã xóa hay chưa 12 created_by int Khóa ngoại Khóa ngoại thể hiện
người khởi tạo đối tượng
13 updated_by int Khóa Ngoại Khóa ngoại thể hiện người cập nhật đối tượng
14 created_at date Thời gian khởi tạo đối tượng
15 updated_at date Thời gian cập nhật đối tượng
42
Chương 6. HIỆN THỰC HỆ THỐNG – SƠ ĐỒ USECASE
6.1. Danh sách actor
Các đối tượng giao tiếp với hệ thống bao gồm:
STT Actor Ý nghĩa
1 Người dùng Là tất cả người dùng có nhu cầu giao dịch tất cả các loại bất động sản và sử dụng tất cả những tính năng của hệ thống như đăng giao dịch bất động sản, tra cứu bất động sản, giao dịch bất động sản, đẩy tin bất động sản...
2 Admin Nắm trọn bộ quyền quản lý hệ thống, quản lý người dùng, quản lý bài đăng, thao tác đóng mở bất động sản,…
Bảng 6.1: Danh sách các actor của hệ thống
6.2. Sơ đồ usecase tổng quát
43
44 STT Usecase Mô tả
1 Đăng ký Người dùng truy cập vào trang web và đăng ký tài khoản khách hàng vào hệ thống
2 Đăng nhập Người dùng truy cập vào trang web và đăng nhập tài khoản vào hệ thống (có thể là admin hoặc khách hàng)
3 Đổi mật khẩu Người dùng truy cập vào trang web và chọn đổi mật khẩu thay vì đăng nhập
4 Đăng xuất Người dùng đã đăng nhập vào hệ thống và đăng xuất thông tin người dùng
5 Lọc/Tìm kiếm bđs Tìm kiếm/lọc bất động sản theo những thơng tin như từ khóa tìm kiếm, tỉnh/thành phố,
quận/huyện, loại bất động sản, khoản giá, khoản diện tích...
6 Trang cá nhân Bao gồm các thông tin và chức năng của quản lý bài viết, chỉnh sửa thơng tin, quản lý u thích bài viết.
7 Quản lý bđs cá nhân Quản lý các bài viết bất động sản người dùng khách hàng đã tạo bao gồm sửa, xóa thơng tin bài đã đăng và đang chờ duyệt
8 Quản lý u thích, lưu lại thơng tin bài viết
Quản lý danh sách u thích, lưu lại thơng tin bài viết của tất cả người dùng khách hàng
9 Chỉnh sửa thông tin Chỉnh sửa thông tin cá nhân của người dùng 10 Tạo bđs Tạo bất động sản sau khi đăng nhập
11 Gợi ý bđs liên quan Hiển thị các bài viết liên quan phù hợp với các hoạt động của người dùng như xem, tìm kiếm, u thích, …
45
Bảng 6.2: Bảng danh sách các usecase của hệ thống
6.3. Đặc tả một số use-case chính
6.3.1. Đặc tả use-case “Đăng Ký"
Tên chức năng Đăng ký.
Tóm tắt Người dùng muốn đăng bất động sản hoặc
lưu bài viết để xem lại cần đăng kí người dùng khách hàng để đăng nhập vào hệ thống.
Actor Người dùng khách hàng
Dịng sự kiện chính Nhập đầy đủ thơng tin.
Dịng sự kiện khác Khơng thể đăng ký.
Ngun nhân:
• Trùng tên đăng ký người dùng. 12 Xem thông tin bđs
dưới dạng biểu đồ
Hiển thị thông tin tổng quát số lượng bất động sản dưới dạng biểu đồ đường, cột, radar
13 Quản lý thể loại Quản lý danh sách thể loại như tìm kiếm, thêm mới, sửa, xóa thể loại
14 Quản lý bđs Quản lý danh sách bài viết bđs như tìm kiếm, lọc/xóa lọc trường thơng tin, sắp xếp, xóa, sửa, thêm, duyệt bài viết
15 Làm nổi bật bđs Lựa chọn bài viết để làm bài nổi bật trên trang web
16 Quản lý người dùng khách hàng
Hiển thị danh sách người dùng khách hàng, bao gồm các thông tin, danh sách bài đăng, danh sách yêu thích của từng khách hàng. Ngồi ra cịn có thể lọc danh sách theo từng trường thơng tin
46
• Trùng email đã đăng ký.
Trạng thái hệ thống trước khi thực hiện usecase.
Actor: tất cả actor. Điều kiện: khơng có.
Trạng thái hệ thống sau khi thực hiện use case.
Đăng ký thành công, tự động trở lại trang đăng nhập
Các u câu đặc biệt Khơng có.
Ngoại lệ Khơng có.
Bảng 6.3: Đặc tả usecase “Đăng Ký”
6.3.2. Đặc tả use-case “Đăng Nhập"
Tên chức năng Đăng nhập.
Tóm tắt Đăng nhập vào hệ thống để thực hiện
những tính năng trong hệ thống.
Actor Người dùng.
Dịng sự kiện chính Người dùng truy cập vào hệ thống
Người dùng nhấn đăng nhập để tiến hành đăng nhập vào hệ thống.
Nếu người dùng chưa đăng ký vẫn có thể vào trang web hệ thống để xem như người dùng khách hàng bình thường nhưng khơng sử dụng được các chức năng
Dịng sự kiện khác Không thể đăng nhập.
Nguyên nhân:
• Khơng thể kết nối đến server.
• Người dùng nhập sai mật khẩu.
47
Trạng thái hệ thống trước khi thực hiện usecase.
Actor: tất cả actor. Điều kiện: khơng có.
Trạng thái hệ thống sau khi thực hiện use case.
Người dùng đăng nhập thành công, truy cập vào trang chủ.
Người dùng đăng nhập thất bại hiển thị thông báo ở trang đăng nhập
Các yêu câu đặc biệt Khơng có.
Ngoại lệ Khơng có.
Bảng 6.4: Đặc tả usecase “Đăng Nhập”
6.3.3. Đặc tả use-case “Đổi mật khẩu "
Tên chức năng Đổi mật khẩu
Tóm tắt Đăng mật khẩu hiện tại của người dùng.
Actor Người dùng.
Dịng sự kiện chính Người dùng truy cập vào hệ thống
Người dùng nhấn đăng nhập để đăng nhập vào hệ thống
Sau khi đăng nhập thành công nhấn người dùng chọn Đổi mật khẩu
Dòng sự kiện khác Khơng thể đổi mật khẩu.
Ngun nhân:
• Sai mật khẩu hiện tại.