Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tính toàn vẹn của các thực thể dữ liệu được liên kết khi cập nhật

Việc bạn cần làm là rời khỏi bàn ăn theo nguyên trạng của nó. Bạn nói đúng, bạn nên lưu thông tin khách hàng trong hóa đơn để biết lịch sử nơi các mặt hàng được vận chuyển đến. Khi nó thay đổi, bạn KHÔNG nên cập nhật thông tin này ngoại trừ bất kỳ hóa đơn nào chưa được vận chuyển. Để duy trì loại thông tin này, bạn cần một trình kích hoạt trên bảng khách hàng để tìm kiếm các hóa đơn chưa được chuyển và tự động cập nhật các địa chỉ đó.

Nếu bạn muốn lưu các phiên bản lịch sử của thông tin khách hàng, quy trình đúng là tạo một bảng kiểm tra và điền nó thông qua một trình kích hoạt.

Tính toàn vẹn của dữ liệu trong trường hợp này chỉ đơn giản là thông qua một khóa ngoại đối với id khách hàng. Bản thân id không bao giờ được thay đổi hoặc được phép thay đổi bởi người dùng và phải là một số thay thế chẳng hạn như một số nguyên. Vì vậy, bạn không nên thay đổi thông tin địa chỉ trong hóa đơn thực tế (trừ khi thông tin đó chưa được chuyển đi, trong trường hợp đó tốt hơn bạn nên thay đổi hoặc sản phẩm sẽ được chuyển đến sai địa điểm), điều này là đủ để duy trì tính toàn vẹn của dữ liệu. Điều này cũng cho phép bạn xem nơi thực sự vận chuyển hàng hóa nhưng vẫn tra cứu thông tin hiện tại về khách hàng thông qua việc sử dụng khóa ngoại.

Nếu bạn có máy khách thay đổi (so sánh được mua bởi các công ty khác), bạn có thể chạy một quy trình trên máy chủ để cập nhật id khách hàng của các bản ghi cũ hoặc tạo cấu trúc bảng hiển thị id ứng dụng nào thuộc về id mẹ hiện tại. Việc đầu tiên dễ thực hiện hơn nếu bạn không nói về việc thay đổi hàng triệu bản ghi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:vượt quá thời gian chờ khóa

  2. SQLAlchemy và UnicodeDecodeError

  3. Cách chuyển đổi cơ sở dữ liệu MySQL sang mã hóa UTF-8

  4. làm cách nào để lấy tháng kể từ ngày trong mysql

  5. Có bất kỳ lớp nào trong MySql giống như Lớp BulkCopy trong Sql Server 2005