Avatar
2
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
có nên đánh FK ở db
Anh ơi có nên đánh FK ở DB k, tại sao nhiều người bảo k nên đánh FK ở DB ạ
  • Answer
Remain: 5
3 Answers
Avatar
Cesc Nguyễn Professional
Cesc Nguyễn Professional
theo mình thì tuỳ vào tính chất của dữ liệu để quyết định. với những hệ thống cần tính toàn vẹn dữ liệu cao (ví dụ: hệ thống ngân hàng...) thì nên cài FK. còn với nhưng hệ mà tính toàn vẹn dữ liệu ko phải ưu tiên cao nhất, thì sẽ cân nhắc việc cài FK bạn nhé
  • 1
  • Reply
Avatar
dungtv Professional
dungtv Professional
Tử lúc anh đi làm đến giờ chưa bao giờ anh đánh fk, hoặc thấy ai đó đánh fk, vì sao vậy?

  1. Đa phần dữ liệu trước khi đưa vào db đã đc kiểm tra trước rồi, nên không cần thiết db phải kiểm tra lại.
  2. DB chỉ nên là nơi lưu trữ dữ liệu thôi, chứ bản thân hệ thống đã bị nghẽn cổ chai ở DB rồi thì việc nó kiểm tra dữ liệu fk khi insert sẽ càng nó chậm hơn và việc nghẽn lại càng dễ xảy ra hơn.
  3. DB thường được update, thêm trường, thêm bảng, dữ liệu cũng có thể bị thay đổi trực tiếp trong quá trình vận hành, nên đôi khi nó vi phạm nguyên tắc fk, dẫn đến không làm đc, vậy tốt hơn là ko nên có fk em ạ.
  • 0
  • Reply
Avatar
Mình sửa dụng spring data jpa, mỗi lần run server thì các bảng trong database sẽ tự động được tạo hoặc cập nhật theo cấu hình ở file application. Chỉ cần bảng có đầy đủ các trường và đúng kiểu dữ liệu. Không cần quan tâm đến fk đâu vì mình thao thao trên code mà. Mô hình ORM mình thấy ngôn ngữ nào cũng có.
  • 0
  • Reply