Theo kinh nghiệm của mình điều đó hoàn toàn có thể xảy ra nhé bạn. Từ khóa cho vấn đề đó là: Composite key.
Mình giải thích ví dụ đơn giản như sau nhé:
- 1 bảng Hóa đơn được tạo thành bởi 2 trường là Người dùng và sản phẩm. Theo logic kinh doanh khi xuất hóa đơn chúng ta cần biết Người dùng và sản phẩm cùng một lúc --> điều này có thể nói phải luôn cần 2 trường thì một tạo thành một dòng dữ liệu trong bảng thì có thể xác định 2 trường đó là khóa chính.
Tương tự với các trường hợp khác, Bảng của bạn cần xác định bao nhiêu yếu tố mới tạo được 1 dòng dữ liệu thì những yếu tố đó nên là khóa chính tránh những mâu thuẫn. Mình ở đây chỉ đề cập là Nên không phải bắt buộc nên sẽ có những trường hợp đơn giản vẫn tạo được