Vấn đề tạo 2 khóa chính trong một table, không hiểu tại sao???

namak

New Member
Hội viên mới
Em mới bắt đầu học về access thôi, đang thực hành nhưng gặp phải vấn đề không giải thích được, mọi người giúp em nhé.:adore:
Chả là khi có học về khóa chính và khóa ngọai em được biết:
- Khóa chính (là field được đặt primary key) dùng cho những dữ liệu là duy nhất, ví dụ như: mã sinh viên, mã số thuế... và khi nhập dữ liệu vào khóa chính thì dữ liệu mỗi cột phải là duy nhất nếu không nó báo lỗi ngay.
Em cũng biết thế và thử đúng là thấy thế, nhưng tại sao khi em đặt 2 khóa chính cho 1 table
khoa.png


thì khi nhập dữ liệu vào thì các field có thể trùng dữ liệu thoải mái

ss.png


Vậy là tính đảm bảo duy nhất của khoá chính không được đảm bảo?:hypo:
Thế là sao hả mọi người, giả sử em muốn cả 2 khoá chỉ nhận giá trị duy nhất khi đánh vào thì phải làm sao đây?
 
Ðề: Vấn đề tạo 2 khóa chính trong một table, không hiểu tại sao???

Khi chọn 2 Primary key thì nghĩa là giá trị tổng hợp của 2 field là duy nhất.
Như ví dụ trên thì 1.11 và 1.33 là 2 key khác nhau -> hợp lệ.
Hoặc 1.11 và 3.11 cũng là 2 key khác nhau -> hợp lệ.


Nếu muốn cả 2 field đều có giá trị duy nhất (không trùng) trong từng field thì chỉ cần đặt indexed của cả 2 field là Yes (No duplicates).
Lúc đó không cần đặt Primary key vào field nào trong số đó cũng được.

Nghĩa của Primary Key và indexed No duplicates là khác nhau.
Primary Key có mặc định là No duplicates
 
Ðề: Vấn đề tạo 2 khóa chính trong một table, không hiểu tại sao???

Thông thường, khóa chính hiểu đúng nghĩa là duy nhất và được đặt sau có ý nghĩa dễ liên tưởng đến các trường khác trong record, ngoài ra còn nhiều vấn đề khác liên quan như đồng bộ số liệu, kiểu số liệu, dộ dài ...Nên khóa chính chỉ 1 trường làm khóa chính là quá đủ. Tuy nhiên trong phân tích thiết kế, các qua hệ không phân cấp sẽ phát sinh Table cần có 2, 3 trường cùng làm khóa chính. Vấn đề trùng dữ liệu như trên không có gì lạ, vì nó ko vi phạm. nếu cả 02 trường đồng thời trùng lặp thì sẽ báo lỗi ngay.

VD: - Cửa hàng bán đĩa CD, quản lý theo mã số CD làm khóa chính
- Quản lý khách hàng..., Mã số khách hàng làm khóa chính.
- Như vậy: xét 02 dối tượng trên ta thấy. 1 khách hàng có thể mua nhiều loại đĩa cùng lúc, đồng thời 1 loai đĩa cũng có thể có nhiều người mua. Như vậy, trên table Bán it nhất có 02 trường tham gia làm khóa chính. Chưa kể, 1 khách hàng có thể mua nhiều lần và cùng loại đĩa (cả Mã CD và Mã KH trùng) - Thì phải thêm 1 trường nữa - VD: Thời gian mua. tóm lại, những trường hợp như trên người ta luôn tìm cách hợp thức hóa table đó sau cho chỉ có 1 trường làm khóa chính. tùy trường hợp cụ thể ta luôn có cách. Goog luck
 
Ðề: Vấn đề tạo 2 khóa chính trong một table, không hiểu tại sao???

Em mới bắt đầu học về access thôi, đang thực hành nhưng gặp phải vấn đề không giải thích được, mọi người giúp em nhé.:adore:
Chả là khi có học về khóa chính và khóa ngọai em được biết:
- Khóa chính (là field được đặt primary key) dùng cho những dữ liệu là duy nhất, ví dụ như: mã sinh viên, mã số thuế... và khi nhập dữ liệu vào khóa chính thì dữ liệu mỗi cột phải là duy nhất nếu không nó báo lỗi ngay.
Em cũng biết thế và thử đúng là thấy thế, nhưng tại sao khi em đặt 2 khóa chính cho 1 table
khoa.png


thì khi nhập dữ liệu vào thì các field có thể trùng dữ liệu thoải mái

ss.png


Vậy là tính đảm bảo duy nhất của khoá chính không được đảm bảo?:hypo:
Thế là sao hả mọi người, giả sử em muốn cả 2 khoá chỉ nhận giá trị duy nhất khi đánh vào thì phải làm sao đây?


Trong trường hợp này bạn đang đề cập đến Primary key dựa trên dữ liệu kết hợp của nhiều field chứ không phải của một field duy nhất.

Theo đó, trong table có thiết lập Primary key dạng này thì không thể tồn tại hai record có dữ liệu kết hợp ở các filed thành viên của Primary key giống nhau được.

VD:
Khi ta tổ chức 1 phiếu nhập mà số phiếu tăng liên tục bất kể thời gian thì Primary key của nó chỉ cần là field chứa số phiếu nhập. Vì dữ liệu trong field này không bao giờ trùng.
Nhưng nếu theo yêu cầu là khi qua năm mới thì số phiếu đánh lại từ đầu. Như vậy, số phiếu nhập không thể là Primary key được mà phải kết hợp thêm với ngày lập phiếu nhập.
Điều này có thể phát biểu một cách nôm na như sau:
Hai phiếu có thể trùng số nhưng không được trùng cả ngày, và
Hai phiếu có thể cùng một ngày nhưng không được trùng số.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top