ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
BÁO CÁO ĐỒ ÁN MÔN
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
PHÂN TÍCH VÀ THIẾT KẾ
HỆ THỐNG QUẢN LÝ VĂN BẢN
Giảng viên:
ThS. Hồ Hải
Sinh viên thực hiện:
Đặng Lê Bảo Chương
MSSV : 10520010
Nguyễn Bảo Duy
MSSV : 10520011
Lớp: MMT2010
Khóa: 2010-2015
TP.Hồ Chí Minh, tháng 5 năm 2014
Mục lục
Chương 1 : Đặt vấn đề
Chương 2 : Xác định yêu cầu
2.1 Thu thập yêu cầu
2.2.1 Quan sát tại chỗ
2.2.2 Điều tra bằng bảng hỏi
2.2.3 Nghiên cứu các tài liệu, thủ tục
2.2 Tổng hợp kết quả
2.2.1 Quan sát tại chỗ
2.2.2 Điều tra bằng bảng hỏi
2.3 Hợp thức hoá kết quả
2.4 Tổng quan về hệ thống
Chương 3 : Phân tích thành phần xử lý
3.1 Mô hình phân rã chức năng
3.2 Mô hình luồng dữ liệu ( DFD Diagram )
3.2.1 Mô hình ngữ cảnh
3.2.2 Mô hình mức 0
3.2.3 Mô hình mức 1 của tiến trình 1 - Truy xuất văn bản
3.2.5 Mô hình mức 2 của tiến trình 1.2 - Thêm, sửa, xóa văn bản
3.2.6 Mô hình mức 1 của tiến trình 2 - Import/Export văn bản
3.2.7 Mô hình mức 1 của tiến trình 3 - Xét duyệt văn bản
3.2.8 Mô hình mức 1 của tiến trình 4 - Phân quyền người dùng và Quản trị hệ thống
Chương 4 : Phân tích thành phần dữ liệu
4.1 Các thực thể (Entity) trong hệ thống
4.2 Các quan hệ (Relationship) trong hệ thống:
4.3 Mô hình thực thể kết hợp ( ERD Diagram )
Chương 5 : Thiết kế dữ liệu
5.1 Giới thiệu về Drupal CMS
5.2 Cấu hình Drupal CMS
5.3 Use case diagram
5.4 Includes and extends use case diagram
Chương 6 : Kết luận
Tài liệu tham khảo
Chương 1 : Đặt vấn đề
Hiện nay, hầu hết ở các công ty, dù quy mô lớn hay nhỏ, chúng ta đều thấy các văn phòng được
thiết kế riêng chỉ để lưu trữ các văn bản hành chính như tài liệu, hồ sơ, hợp đồng, … Trong đó các văn
bản này thường được phân chia theo một phương thức cụ thể, ví dụ như theo bảng chữ cái Alphabet,
hoặc phân loại theo từng mục riêng. Điều này giúp cho việc tìm kiếm, hoặc tham khảo văn bản được dễ
dàng và thuận tiện hơn rất nhiều. Tuy nhiên, nếu số lượng văn bản quá nhiều sẽ dẫn đến việc cần một
diện tích lớn để lưu trữ. Hơn nữa, việc lưu trữ tập trung như trên luôn đặt ra các nguy cơ về vấn đề bảo
mật và bảo trì.
Với việc công nghệ thông tin ngày càng phát triển vượt bậc, đã và đang mang lại nhiều ứng dụng
cho các ngành công nghệ khác. Đồng thời, công nghệ thông tin cũng mang lại nhiều giải pháp giải quyết
vấn đề tốt và hiệu quả hơn. Vì vậy, so với việc lưu trữ văn bản theo cách thông thường như đã nói ở
trên, chúng ta có thể áp dụng giải pháp công nghệ thông tin : xây dựng một hệ thống quản lý văn bản,
cấu hình theo những yêu cầu và mục đích riêng. Hệ thống này sẽ cung cấp cho người dùng những tiện
ích và hiệu quả như sau:
Quản lý văn bản thành từng file, lưu trữ tập trung trên một hay nhiều server :
○ Lưu trữ được các loại văn bản đặc biệt ( số lượng trang nhiều, hình ảnh đính
kèm trong văn bản… )
○ Có thể backup dữ liệu
○ Việc tìm kiếm dễ dàng và nhanh chóng hơn
○ Xem và chỉnh sửa tài liệu trực tiếp trên máy tính
○ Phân quyền, chứng thực người dùng khi truy cập vào hệ thống quản lý văn bản
● Tiết kiệm được diện tích vật lý.
● Tiết kiệm được chi phí mua thiết bị văn phòng và bảo trì.
● Tiết kiệm được nguồn nhân lực quản lý.
Cụ thể hơn, trong bài báo cáo này, nhóm xin tập trung nói về hệ thống quản lý văn bản được áp
dụng trong một cơ quan hành chính ( có thể áp dụng cho các cơ quan hoặc công ty khác ) do nhóm phân
tích và thiết kế.
●
Chương 2 : Xác định yêu cầu
2.1 Thu thập yêu cầu
Việc thu thập yêu cầu được tiến hành bằng 3 phương pháp sau : Quan sát tại chỗ, Điều tra bằng
bảng hỏi, Nghiên cứu các tài liệu, thủ tục.
2.2.1 Quan sát tại chỗ
Trong quá trình khảo sát, nhóm đã đi đến các cơ quan hành chính và trực tiếp theo dõi các quy
trình quản lý các văn bản gửi đi, các văn bản nhận, các văn bản được phát hành trong nội bộ và quy trình
tìm kiếm văn bản tại các cơ quan đó. Các quy trình đó như sau :
●
Quy trình quản lý các văn bản đi :
Các phòng ban soạn thảo văn bản, sau đó gửi đến cho ban lãnh đạo xét duyệt
Ban lãnh đạo cơ quan xét duyệt, sau đó chuyển đến phòng quản lý văn bản .
Phòng quản lý văn bản sao lưu văn bản đó, sắp xếp vào các ngăn lưu trữ văn bản
đi được phân chia theo loại hoặc theo chữ cái.
○ Văn bản được chuyển đi đến các cơ quan nhận.
Quy trình quản lý các văn bản nhận :
○ Văn bản nhận sẽ được chuyển đến phòng quản lý hành văn bản.
○ Phòng quản lý văn bản sao lưu văn bản, rồi sắp xếp vào các ngăn lưu trữ văn bản
đến được phân chia theo loại hoặc theo chữ cái.
○ Văn bản được chuyển trực tiếp đến các cơ quan được nhận văn bản đó.
Quy trình quản lý các văn bản nội bộ :
○ Các phòng ban soạn thảo văn bản, sau đó gửi đến cho ban lãnh đạo xét duyệt
○ Ban lãnh đạo cơ quan xét duyệt, sau đó chuyển đến phòng quản lý văn bản hành
chính.
○ Phòng quản lý văn bản sao lưu văn bản đó, sắp xếp vào các ngăn lưu trữ dành
riêng cho văn bản nội bộ được phân chia theo loại hoặc theo chữ cái.
○ Văn bản được chuyển đi đến các phòng ban nhận.
Quy trình tìm kiếm văn bản :
○ Các nhân viên hoặc phòng ban có nhu cầu tìm kiếm văn bản sẽ trực tiếp liên hệ
với phòng quản lý văn bản.
○ Phòng quản lý văn bản tìm kiếm chính xác các văn bản được yêu cầu, nếu có sẽ
chuyển đến, nếu không sẽ gửi thông báo đến nhân viên hoặc phòng ban đó.
○ Phòng quản lý văn bản cũng ghi lại thông tin của người yêu cầu tìm kiếm, thời
gian tìm kiếm, cập nhật thông tin nếu văn bản nào đó được chỉnh sửa hoặc thay
đổi.
○
○
○
●
●
●
2.2.2 Điều tra bằng bảng hỏi
Nhóm đã tự thiết kế một bảng câu hỏi đơn giản, sau đó nhờ sự giúp đỡ của các nhân viên phòng
ban tiến hành cuộc khảo sát này.
Các câu hỏi được thiết kế tập trung khai thác sâu về tình hình quản lý văn bản hiện tại trong cơ
quan của đối tượng khảo sát, và bên cạnh đó cũng khảo sát về những mong muốn và yêu cầu của đối
tượng khảo sát về hệ thống quản lý văn bản mới của nhóm.
Link online của bảng câu hỏi : />
2.2.3 Nghiên cứu các tài liệu, thủ tục
Dựa vào việc quan sát các thủ tục quản lý hành chính các loại tài liệu cũ, chúng tôi nhận ra rằng
việc xử lý các loại văn bản,giấy tờ, chứng từ giấy diễn ra một cách thủ công điển hình như một loại văn
bản khi được một cơ quan cấp cao hơn chuyển tới trường cần có chữ ký của hiệu trưởng để văn bản đó
được ban hành đến từng phòng ban có liên quan theo đúng luồng xử lý mà chúng tôi quan sát. Sau đóì
văn bản này sẽ được bộ phận văn thư tiếp nhận đâu tiên sau đó sẽ trình lên hiệu trưởng để xin chữ ký,
sau khi được hiệu trưởng duyệt thì văn bản sẽ được ban hành đến các phòng ban và sau đó phổ biến tới
các nhân viên, sau đó nếu cần văn thư cần phải gửi một văn bản để phúc đáp/trả lời văn bản đó đến cơ
quan ban hành đầu tiên và văn bản phúc đáp này cũng cần được hiệu trưởng xem qua và duyệt trước khi
gửi đi. Từ ví dụ trên có thể thấy việc xem xét xử lý một văn bản mất khác nhiều công sức chưa kể có thể
văn bản đi từ nơi này qua nơi khác có thể bị thất lạc nên cần có một hệ thống số để xử lý các văn bản này
một cách nhanh chóng hơn.
2.2 Tổng hợp kết quả
2.2.1 Quan sát tại chỗ
Theo ước tính thống kê của nhóm, một quy trình như trên thường diễn ra trong khoảng 1-2
ngày, trừ các trường hợp đặc biệt. Lý do thời gian của một quy trình diễn ra khá lâu là vì thời gian chờ, và
thời gian tổng hợp các văn bản đợi được ban lãnh đạo xét duyệt. Để các công việc trong cơ quan được
diễn ra nhanh chóng và thuận tiện hơn, nhất thiết phải tiết kiệm được thời gian lãng phí nêu trên.
Ngoài ra, việc quản lý văn bản theo cách truyền thống còn có các nhược điểm về không gian lưu
trữ, giữ gìn văn bản không bị ảnh hưởng bởi điều kiện bên ngoài như thời tiết, sâu bọ...
2.2.2 Điều tra bằng bảng hỏi
Link thống kê kết quả trả lời khảo sát thông qua bảng câu hỏi :
/>
2.3 Hợp thức hoá kết quả
Các kết quả thu được ở trên được nhóm thống kê, tổng hợp lại và tiến hành đệ trình cho các nhà
quản lý và ban lãnh đạo cơ quan xem xét và đánh giá bổ sung.
2.4 Tổng quan về hệ thống
Hệ thống quản lý văn bản có những yêu cầu về hệ thống như sau :
●
●
Mục tiêu :
○ Đơn giản hoá luồng quy trình xử lý văn bản theo cách truyền thống.
○ Tiết kiệm thời gian chờ khi văn bản được vận chuyển.
○ Tiết kiệm diện tích lưu trữ văn bản bằng cách lưu trữ, quản lý các văn bản tập
trung theo một hệ thống hoàn chỉnh.
○ Tiết kiệm thời gian truy xuất, tìm kiếm hay chỉnh sửa văn bản.
○ Tiết kiệm chi phí thiết bị và nguồn nhân lực quản lý.
Yêu cầu :
○ Thiết kế một cơ sở dữ liệu hoàn chỉnh dùng cho việc quản lý các loại văn bản
hành chính, thực thi trên một hoặc nhiều máy server.
○ Thiết kế giao diện cụ thể là một site quản lý cho phép các đối tượng người dùng
có thể tạo/thêm mới một dạng văn bản.
○ Giao diện gồm một trang quản lý cho phép người dùng tìm/lọc ra các văn bản
theo nhiều tiêu chí khác nhau, các thành phần chức năng như xuất danh sách
các văn bản đang xem hoặc được chọn ra file excel, nhập liệu từ file excel
(import excel ) từ file excel giúp tiết kiệm thời gian nhập liệu cho đối tượng
người dùng là văn thư.
○ Cung cấp khả năng chuyển xử lý, giao việc (task) trên từng văn bản/tài liệu có
liên quan tới phòng ban và người dùng mà văn bản đó được phát hành hoặc
nhận được.
Cung cấp khả năng backup dữ liệu ( nếu cần ).
Cung cấp khả năng chứng thực và phân quyền khi người dùng truy cập và hệ
thống.
Giá trị : Theo ước tính, hệ thống này sẽ mang lại cho cơ quan hành chính những lợi ích
sau :
○ Tiết kiệm được không gian diện tích dành riêng cho việc lưu trữ văn bản bằng
giấy theo cách thông thường ( khoảng 50-100 mét vuông ).
○ Tiết kiệm được thời gian khi tìm kiếm văn bản ( giảm thời gian gấp 10-15 lần so
với việc tìm kiếm văn bản giấy thông thường ).
○ Tiết kiệm từ 20-30 triệu đồng từ việc thiết kế một không gian lưu trữ văn bản
thông thường.
Các ràng buộc và yêu cầu đặc biệt :
○ Hệ thống cần được vận hành một cách ổn định, đảm bảo tốc độ truy xuất cao và
liên tục.
○ Hệ thống cần được bảo trì và backup hàng tháng.
○ Hệ thống cần đảm bảo lưu trữ được số lượng văn bản lớn trong vòng tối đa 10
năm.
○
○
●
●
Chương 3 : Phân tích thành phần xử lý
3.1 Mô hình phân rã chức năng
3.2 Mô hình luồng dữ liệu ( DFD Diagram )
3.2.1 Mô hình ngữ cảnh
3.2.2 Mô hình mức 0
3.2.3 Mô hình mức 1 của tiến trình 1 - Truy xuất văn bản
3.2.4 Mô hình mức 2 của tiến trình 1.1 - Tìm kiếm văn bản
3.2.5 Mô hình mức 2 của tiến trình 1.2 - Thêm, sửa, xóa văn bản
3.2.6 Mô hình mức 1 của tiến trình 2 - Import/Export văn bản
3.2.7 Mô hình mức 1 của tiến trình 3 - Xét duyệt văn bản
3.2.8 Mô hình mức 1 của tiến trình 4 - Phân quyền người dùng và Quản trị hệ thống
3.2.9 Mô hình mức 2 của tiến trình 4.1 - Phân quyền người dùng
3.2.10 Mô hình mức 2 của tiến trình 4.2 - Quản trị hệ thống
Chương 4 : Phân tích thành phần dữ liệu
4.1 Các thực thể (Entity) trong hệ thống
●
Thực thể qlhc_vanbanden : Bảng ghi lại thông tin các loại văn bản đến
○ id
○ tieude
○ mavanban
○ ghichu
○ physical_place
○ ngayky
○ nguoiky
○ thuocphongban
○ loaivanban
○ linhvuc
○ domat
○ dokhan
○ ngaynhan
○ ngayvaoso
○ sovaoso
○ sovanban
○ hanxuli
○ cosophathanh
○ phongbangui
○ phongbannhan
○ phuongthucnhan
○ trangthai
○ daxoa
○ daphathanh
○ list_user_permission
○ list_user_in_group_permission
○ list_user_in_role_permission
○
○
○
○
●
edit_per
lock
noibo
taptin
Thực thể qlhc_vanbandi : Bảng ghi lại thông tin các loại văn bản đi
○ id
○ tieude
○ mavanban
○ ghichu
○ physical_place
○ ngayky
○ nguoiky
○ thuocphongban
○ loaivanban
○ linhvuc
○ domat
○ dokhan
○
○
○
○
○
○
○
○
○
○
○
●
kynhay
nguoisoan
ngayphathanh
traloivanban
trangthai
daxoa
daphathanh
view_per
edit_per
lock
taptin
Thực thể qlhc_vanbandi_doitac : Bảng ghi lại thông tin đối tác nhận được văn bản
chuyển đi
○ id_vanbandi
○ phongbangui
○ id_doitac
○ phuongthucchuyengiao
○ phongbandoitac
●
Thực thể qlhc_vanbanden_log : Bảng ghi log của hệ thống lại khi có văn bản được
chuyển đến
○ id
○ idvanbanden
○ ngay
○ hanhdong
○ nguoithaotac
○ ghichu
●
Thực thể qlhc_vanbandi_log : Bảng ghi log của hệ thống lại khi có văn bản được chuyển
đi
○ id
○ idvanbandi
○ ngay
○ hanhdong
○ nguoithaotac
○ ghichu
●
Thực thể qlhc_actions : Bảng ghi log các hoạt động của người dùng
○ id
○ ten
●
Thực thể qlhc_coso : Bảng ghi lại thông tin các chi nhánh, cơ sở trong công ty (trong
trường hợp cơ quan có nhiều cơ sở và chi nhánh khác nhau)
○ id
○ tencoso
○ diachi
●
Thực thể qlhc_doitac : Bảng ghi lại thông tin các đối tác
○ id
○ ten
●
Thực thể qlhc_dokhan : Bảng ghi lại các độ khẩn cấp cần phải xử lý hoặc xét duyệt cửa
từng văn bản
○ id : int(11)
○ tendokhan: varchar(255) - tên độ khẩn
●
Thực thể qlhc_domat : Bảng ghi lại các độ bảo mật cửa từng văn bản
○ id: int(11)
○ tendomat: varchar(255) - tên độ mật
Thực thể qlhc_linhvuc : Bảng ghi lại các lĩnh vực trong các loại văn bản
○ id: int(11)
○ tenlinhvuc: varchar(255)- tên lĩnh vực
Thực thể qlhc_loaivanban : Bảng ghi lại thông tin các loại văn bản
○ id: int(11)
○ tenloaivanban: varchar(255) tên loại văn bản
Thực thể qlhc_nguoidung : Bảng ghi lại thông tin của người dùng
○ id
○ hoten
○ ngaysinh
○ anhdaidien
○ thuocphongban
○ chucvu
●
●
●
●
Thực thể qlhc_phongban : Bảng ghi lại thông tin của các phòng ban
○ id
○ tenphong
○ thuoccoso
○ loai
●
Thực thể qlhc_phongbandoitac : Bảng ghi lại thông tin của các phòng ban đối tác
○ id
○ ten
○ thuocdoitac
●
Thực thể qlhc_phuongthucchuyengiao : Bảng ghi lại phương thức chuyển giao văn bản
đi hoặc đến
○ id
○ ten
●
Thực thể qlhc_taptin : Bảng thông tin về tất cả các văn bản được lưu trữ trên hệ thống
○ id
○ tentaptin
○ duongdan
○ kichthuoc
○ loaitaptin
4.2 Các quan hệ (Relationship) trong hệ thống:
SQL các khóa ngoại biểu hiện relationship trong hệ thống:
--- Constraints for table `qlhc_phongban`
-ALTER TABLE `qlhc_phongban`
ADD CONSTRAINT `qlhc_fk_phongban_thuoccoso` FOREIGN KEY (`thuoccoso`) REFERENCES `qlhc_coso`
(`id`);
--- Constraints for table `qlhc_phongbandoitac`
-ALTER TABLE `qlhc_phongbandoitac`
ADD CONSTRAINT `qlhc_fk_phongbandoitac_thuocdoitac` FOREIGN KEY (`thuocdoitac`) REFERENCES
`qlhc_doitac` (`id`);
--- Constraints for table `qlhc_vanbanden`
-ALTER TABLE `qlhc_vanbanden`
ADD CONSTRAINT `qlhc_fk_vanbanden_taptin` FOREIGN KEY (`taptin`) REFERENCES `qlhc_taptin` (`id`)
ON DELETE CASCADE,
ADD CONSTRAINT `qlhc_fk_vanbanden_cosophathanh` FOREIGN KEY (`cosophathanh`) REFERENCES
`qlhc_doitac` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbanden_dokhan` FOREIGN KEY (`dokhan`) REFERENCES `qlhc_dokhan`
(`id`),
ADD CONSTRAINT `qlhc_fk_vanbanden_phongbannhan` FOREIGN KEY (`phongbannhan`) REFERENCES
`qlhc_phongban` (`id`),
ADD CONSTRAINT `qlhc_fk_vanband_thuocphongban` FOREIGN KEY (`thuocphongban`) REFERENCES
`qlhc_phongban` (`id`),
ADD CONSTRAINT `qlhc_phuongthucchuyengiao` FOREIGN KEY (`phuongthucnhan`) REFERENCES
`qlhc_phuongthucchuyengiao` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbanden_domat` FOREIGN KEY (`domat`) REFERENCES `qlhc_domat`
(`id`),
ADD CONSTRAINT `qlvb_fk_vanbanden_linhvuc` FOREIGN KEY (`linhvuc`) REFERENCES `qlhc_linhvuc`
(`id`),
ADD CONSTRAINT `qlvb_fk_vanbanden_loaivanban` FOREIGN KEY (`loaivanban`) REFERENCES
`qlhc_loaivanban` (`id`);
--- Constraints for table `qlhc_vanbanden_log`
-ALTER TABLE `qlhc_vanbanden_log`
ADD CONSTRAINT `qlhc_fk_logden_hanhdong` FOREIGN KEY (`hanhdong`) REFERENCES `qlhc_actions`
(`id`);
--- Constraints for table `qlhc_vanbanden_taptin`
-ALTER TABLE `qlhc_vanbanden_taptin`
ADD CONSTRAINT `qlhc_fk_vbdtt_vanbanden` FOREIGN KEY (`idvanbanden`) REFERENCES
`qlhc_vanbanden` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `qlvb_fk_vbdtt_taptin` FOREIGN KEY (`idtaptin`) REFERENCES `qlhc_taptin` (`id`);
--- Constraints for table `qlhc_vanbandi`
-ALTER TABLE `qlhc_vanbandi`
ADD CONSTRAINT `qlhc_fk_vanbandi_linhvuc` FOREIGN KEY (`linhvuc`) REFERENCES `qlhc_linhvuc`
(`id`),
ADD CONSTRAINT `qlhc_fk_vanbandi_loaivanban` FOREIGN KEY (`loaivanban`) REFERENCES
`qlhc_loaivanban` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandi_nguoiky` FOREIGN KEY (`nguoiky`) REFERENCES `uit_thongtingv`
(`magv`),
ADD CONSTRAINT `qlhc_fk_vanbandi_nguoisoan` FOREIGN KEY (`nguoisoan`) REFERENCES
`qlhc_nguoidung` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandi_taptin` FOREIGN KEY (`taptin`) REFERENCES `qlhc_taptin` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandi_thuocphongban` FOREIGN KEY (`thuocphongban`) REFERENCES
`qlhc_phongban` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandi_traloivanbanden` FOREIGN KEY (`traloivanban`) REFERENCES
`qlhc_vanbanden` (`id`);
--- Constraints for table `qlhc_vanbandi_doitac`
-ALTER TABLE `qlhc_vanbandi_doitac`
ADD CONSTRAINT `qlhc_fk_vanbandidoitac_doitac` FOREIGN KEY (`id_doitac`) REFERENCES
`qlhc_doitac` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandidoitac_phongbandoitac` FOREIGN KEY (`phongbandoitac`)
REFERENCES `qlhc_phongban` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandidoitac_phongbangui` FOREIGN KEY (`phongbangui`) REFERENCES
`qlhc_phongban` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandidoitac_phuongthuc` FOREIGN KEY (`phuongthucchuyengiao`)
REFERENCES `qlhc_phuongthucchuyengiao` (`id`),
ADD CONSTRAINT `qlhc_fk_vanbandidoitac_vanbandi` FOREIGN KEY (`id_vanbandi`) REFERENCES
`qlhc_vanbandi` (`id`);
--- Constraints for table `qlhc_vanbandi_log`
-ALTER TABLE `qlhc_vanbandi_log`
ADD CONSTRAINT `qlhc_fk_logdi_hanhdong` FOREIGN KEY (`hanhdong`) REFERENCES `qlhc_actions`
(`id`);
--- Constraints for table `qlhc_vanbandi_taptin`
-ALTER TABLE `qlhc_vanbandi_taptin`
ADD CONSTRAINT `qlhc_fk_vbdtt_tt` FOREIGN KEY (`idtaptin`) REFERENCES `qlhc_taptin` (`id`),
ADD CONSTRAINT `qlhc_fk_vbdtt_vbd` FOREIGN KEY (`idvanbandi`) REFERENCES `qlhc_vanbandi` (`id`)
ON DELETE CASCADE;
--- Constraints for table `qlhc_vanbannoibo`
-ALTER TABLE `qlhc_vanbannoibo`
ADD CONSTRAINT `qlvb_fk_vanbannoibo_linhvuc` FOREIGN KEY (`linhvuc`) REFERENCES `qlhc_linhvuc`
(`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_loaivanban` FOREIGN KEY (`loaivanban`) REFERENCES
`qlhc_loaivanban` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_nguoiky` FOREIGN KEY (`nguoiky`) REFERENCES
`qlhc_nguoidung` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_phongbannhan` FOREIGN KEY (`phongbannhan`)
REFERENCES `qlhc_phongban` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_phongbanphathanh` FOREIGN KEY (`phongbanphathanh`)
REFERENCES `qlhc_phongban` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_phuongthucnhan` FOREIGN KEY (`phuongthucnhan`)
REFERENCES `qlhc_phuongthucchuyengiao` (`id`),
ADD CONSTRAINT `qlvb_fk_vanbannoibo_thuocphongban` FOREIGN KEY (`thuocphongban`)
REFERENCES `qlhc_phongban` (`id`);
--- Constraints for table `qlhc_vanbannoibo_log`
-ALTER TABLE `qlhc_vanbannoibo_log`
ADD CONSTRAINT `qlhc_fk_lognb_hanhdong` FOREIGN KEY (`hanhdong`) REFERENCES `qlhc_actions`
(`id`);
--- Constraints for table `qlhc_vanbannoibo_taptin`
-ALTER TABLE `qlhc_vanbannoibo_taptin`
ADD CONSTRAINT `qlhc_fk_vbnbtt_taptin` FOREIGN KEY (`idtaptin`) REFERENCES `qlhc_taptin` (`id`),
ADD CONSTRAINT `qlhc_fk_vbnbtt_vanbannoibo` FOREIGN KEY (`idvanbannoibo`) REFERENCES
`qlhc_vanbannoibo` (`id`);