Bạn đã tạo được liên kết (Chính xác là quan hệ = relationships). Tôi có thể nhanh chóng xử lý cho bạn và post lên demo. Nhưng tôi thấy bạn phân tích rất tốt, nên thay vì như vậy, tối sẽ hướng dẫn để bạn tự làm sẽ tốt cho bạn hơn.
Trong quan hệ giữa 2 table ta sẽ có 2 thuật ngữ main table (bảng chính) và sub table (bảng phụ), ở Việt Nam trong các lớp tin học giáo viện thường diễn giải là table cha (main table) và table con (sub table). Giữa 2 table sẽ có 2 field (trường) giống nhau về kiểu dữ liệu (data type). 2 trường này sẽ nối (liên kết) với nhau bằng các kiểu:
1/ Một - một (1-1): Hai field của main table và sub table điều là khóa chính (primary key)
2/ Một - nhiều (1-∞): Field của main table là khóa chính và field của suble table là khóa ngoại (foreign key)
3/ Nhiều - nhiều (∞-∞): cả 2 field của 2 table điều là khóa ngoại (foreign key)
Các khái niệm về khóa chính khóa ngoại như sau:
1. Khóa chính là gì
Khóa chính (hay ràng buộc khóa chính) được sử dụng để định danh duy nhất mỗi record trong table của cơ sở dữ liệu.
Ngoài ra, nó còn dùng để thiết lập quan hệ 1-∞ (hay ràng buộc tham chiếu) giữa hai table trong cơ sở dữ liệu.
Dữ liệu (value) của field khóa chính phải có tính duy nhất. Và không chứa các giá trị Null.
Mỗi table nên chỉ có một khóa chính, khóa chính có thể tạo ra từ nhiều field của table.
2. Khóa ngoại là gì
Khóa ngoại của một table được xem như con trỏ trỏ tới khóa chính của table khác.
Nếu trường Ten của table tblCBCS được sử dụng để tạo ràng buộc tham chiếu đến table tblGiaDinh, thông qua khóa chính là Ten thì Ten của table tblGiaDinh được gọi là khóa ngoại của bảng này. Đây cũng chính là lý do mà ta nói, khóa ngoại được xem như con trỏ trởi tới khóa chính.
Như vậy, hai table tblCBCS và tblGiaDinh quan hệ dữ liệu với nhau thông qua field Ten của mỗi table (đây là quan hệ 1 – ∞). Hay nói cách khác, ràng buộc tham chiếu đã được tạo giữa hai table (từ table tblGiaDinh đến table tblCBCS).
Từ các khái niệm này tôi sẽ phân tích trường hợp trong ứng dụng của bạn.
Quan hệ giữa 2 table tblDanToc - tblCBCS (1-∞):
Bạn phải check vào ô Enforce referential integrity để xác định tính toàn vẹn tham chiếu. Nếu không check vào ô này thì dữ liệu của field DT trên table tblCBCS sẽ không phụ thuộc vào field DT của table tblDanToc. ví dụ; trên table tblDanToc không có dân tộc Chăm, nhưng trên table tblCBCS bạn vẫn có quyền đưa vào dữ liệu dân tộc Chăm. Khi đó người ta có thể xóa dữ liệu trên main table mà ứng dụng không thông báo lỗi gây nên hiện tượng con không cha trong quan hệ. Khi bạn check vào ô này người ta không thể xóa những record có giá trị đã được sử dụng trên sub table.
Đối với ô thứ hai: Cascade Update Related Field: Nếu check vào ô này bạn có thể cập nhật các giá tri của sub table khi thay đổi giá trị của main table. Ví dụ: nếu bạn sửa giá trị Chăm trên table tblDanToc thành Chàm thì tất cả các gía trị Chăm trên table tblCBCS cũng sẽ đỗi thành Chàm. Nếu không bạn sẽ không đỗi được giá trị Chăm trên table tblDanToc thành Chàm khi giá trị Chăm đã được sử dụng trên table tblCBCS.
Trường hợp ô thứ ba: Cascade Delete Related Field: Nếu check vào ô này, khi bạn xóa giá trị của main table thì tất cả các record của sub ta1ble có giá trị đó cũng sẽ bị xóa theo. Ví dụ: nếu bạn xóa giá trị Chăm trên table tblDanToc thì tất cả các record có gía trị Chăm trên table tblCBCS cũng sẽ bị xóa. Nếu không bạn sẽ không xóa được giá trị Chăm trên table tblDanToc khi giá trị Chăm đã được sử dụng trên table tblCBCS.
Cắn cứ theo các khái niệm trên bạn phải xử lý như sau:
1/ Bỏ khóa chính của field Ten trên table tblGiaDinh (nếu để khóa chính ở đây bạn chỉ có thể nhập được 1 người thân duy nhất của CBCS có tên đó)
2/ Check ô Enforce referential integrity của các quan hệ.
3/ Cách xử lý các field trên table tblGiaDinh chưa hợp lý, cần phải thiết kế lại:
- Chỉ chừa field Tên (Tên của CBCS - mà cũng cần phải xử lý field này thành mã CBCS để tránh trường hợp nhiều chiến sĩ trùng tên-họ). còn tất cả cần phải xóa hết.
- Tạo field tên người thân: sử dụng cho tất cả người thân.
- Tạo Field quan hệ: để nhập giá trị quan hệ CBCS (cha, mẹ, vợ, chồng, anh, chị, em, con)
- Tạo field Năm sinh, Điện thoại, nghề nghiệp....
* Vì nếu làm theo kiểu của bạn chỉ giới hạn đến con thứ 3...(sau này có thay đổi chính sách thì làm sao thêm
)
Chúc bạn thành công