01/10/2018, 09:55
Hỏi về cách thêm row mà không trùng nhau trong SQL
Mình có một CSDL Đại Loại Như Vậy

Mình muốn các dòng trong table “MonHoc”
Với 2 Trường “F_MaKhoi” và “Ten” có các Row khi thêm vào thì không được trùng nhau
VD:

Như Hình 2 Thì có 2 dòng Tên: Hóa Học Và F_Makhoi giống nhau . mình muốn không thêm được như vậy
một là khác Tên hoặc khác F_MaKhoi
// Mình hỏi cách giải quyết bên SQL còn bên lập trình thì mình nghĩ có cách rồi!
Bài liên quan
Bạn tìm hiểu về unique trong SQL
https://www.w3schools.com/sql/sql_unique.asp
mình biết cái unique nhưng nó áp dụng cho 1 colum: làm cho trong colum đó hk có row nào giống nhau.
nhưng mình cần 2 colum : 1 là Fkey và 1 colum
thiết kế như chú sai rồi, thấy mô hinh như chú thì n-n mơi đúng.
bạn nói đúng! mình chỉ quản lý theo khối thôi cái này tùy thuộc vào nghữ cảnh mà!
bạn có thể nghĩ ra trường hợp Lớp_SinhVien và mình muốn trong 1lop hk co sv trùng tên.
nhưng nếu set trường Ten Unique thì trong cả 1 table hk thể có 2 tên giống nhau!
tách khối ra khỏi môn học, tao table mớ(khoi_mon) co key là mã môn với mã khối, vậy là thỏa yêu cầu của bạn:
như vậy hả bạn! cách thành N-N theo ý bạn!
Trang thái môn học nó phụ thuộc vào khối vơi môn luôn -> đưa vao table Khoi_mon là đẹp. cơ bản đã đảm bảo ràng buộc toàn vẹn.
OK! cảm ơn bạn đã giúp đỡ