Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Hỏi về Khóa Ngoại, Khóa chính.

    anh chị cho em hỏi.Khi nào chúng ta cần phải tạo khóa ngoại. và nhửng yếu tố nào để đặt 1 trường là khoá ngoại, hay mình thích đặt trường nào làm khóa ngoại thì đặt, và ý nghĩa nó khi liên kết với khóa Chính của Bảng khác ạ. mong anh chị trả lời cho em mấy ý kia giùm.

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    một câu hỏi thật vi diệu!!! cái này căn bản học lập trình có ngay trong sách vở mà bạn ko chịu khó ngồi lật sách ra mà đọc à [IMG]images/smilies/troll/rage3.jpg[/IMG]

  3. #3
    Ngày tham gia
    Oct 2015
    Bài viết
    106
    Bạn đọc tham khảo này
    Khóa chính:
    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-n (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.
    Khóa ngoại:
    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 MaSV của table DiemSV được sử dụng để tạo ràng buộc tham chiếu đến table HSSV, thông qua khóa chính là MaSV thì MaSV của table DiemSV đượ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.
    Để hiểu rõ hơn về ý nghĩa sử dụng của khóa chính, khóa ngoại chúng ta hãy xét ví dụ sau: Giả sử cơ sở dữ liệu QLDiemSV có hai table: HSSV và DiemSV như sau:
    Table HSSV gồm 6 field, trong đó MaSV được chọn làm khóa chính của table này.
    [IMG]http://files.**********/2016/T05/img/**********-321041-mysql9.png[/IMG]
    Table DiemSV gồm 6 field, trong đó STT là khóa chính và MaSV được chọn làm khóa ngoại của table này.
    [IMG]http://files.**********/2016/T05/img/**********-321041-mysql10.png[/IMG]
    Như vậy, hai table HSSV và DiemSV quan hệ dữ liệu với nhau thông qua field MaSV của mỗi table (đây là qun hệ 1 – n). Hay nói cách khác, ràng buộc tham chiếu đã được tạo giữa hai table (từ table DiemSV đến table HSSV).
    Với ràng buộc này thì, việc người sử dụng vô tình hay cố ý phá hủy các liên kết sẽ bị ngăn chặn. Và, người sử dụng cũng không thể nhập vào cột khóa ngoại một giá trị mà giá trị đó không xuất hiện ở cột khóa chính mà khóa này trỏ tới (không thể nhập điểm cho một sinh viên, vào table DiemSV, mà mã của họ không xuất hiện ở cột MaSV ở table HSSV).

  4. #4
    Ngày tham gia
    Mar 2016
    Bài viết
    24
    Trích dẫn Gửi bởi VSupport
    Bạn đọc tham khảo này
    Khóa chính:
    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-n (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.
    Khóa ngoại:
    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 MaSV của table DiemSV được sử dụng để tạo ràng buộc tham chiếu đến table HSSV, thông qua khóa chính là MaSV thì MaSV của table DiemSV đượ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.
    Để hiểu rõ hơn về ý nghĩa sử dụng của khóa chính, khóa ngoại chúng ta hãy xét ví dụ sau: Giả sử cơ sở dữ liệu QLDiemSV có hai table: HSSV và DiemSV như sau:
    Table HSSV gồm 6 field, trong đó MaSV được chọn làm khóa chính của table này.
    [IMG]http://files.**********/2016/T05/img/**********-321041-mysql9.png[/IMG]

    </div>[IMG]images/smilies/troll2/thattinh.png[/IMG] kiến thức trong sách mà cũng ko chịu khó mà ngồi đọc! bác tl làm gì cho nó tự kiếm để mà nhớ [IMG]images/smilies/troll2/phingua.gif[/IMG][IMG]images/smilies/troll2/xuan-2015.jpg[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 02:58 PM.
Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2024 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.