2009-11-27 37 views
5

gì là cách tiếp cận tốt nhất để thêm các lĩnh vực tạo ra và sửa đổi trong MySQL:MySQL: ADD tạo và sửa đổi các lĩnh vực

1) sử dụng MySQL tính năng như on update CURRENT_TIMESTAMP hoặc

2) sử dụng PHP (hay cái gì khác)? Tại sao?

Nếu câu trả lời là MySQL, bạn sẽ làm như thế nào?

Trả lời

3

Đây là một câu hỏi hay. Tôi cho rằng bạn sẽ cần phải xem xét điều này từ hai khía cạnh

  • hiệu suất
  • thực hiện kiến ​​trúc

Từ góc độ hiệu suất nếu bạn đã tạo ra một hàng hoặc cập nhật liên tiếp sau đó cập nhật các dấu thời gian trên hàng đó là không đáng kể và do đó tôi không nghĩ rằng có nhiều sự khác biệt giữa cập nhật từ php hoặc thông qua một kích hoạt. Từ một triển khai phối cảnh kiến ​​trúc triển khai khá dễ dàng và trong php nếu bạn có kiến ​​trúc ORM đẹp (hoặc sử dụng Doctrine), bạn có thể ghi đè lên hàm save() của bạn trong một lớp trừu tượng để luôn cập nhật timestamps tạo/sửa đổi. khi bạn lưu.

Vì vậy, cá nhân tôi sẽ thực hiện điều này trong PHP nếu tôi khá nhiều có tất cả các truy cập cơ sở dữ liệu của tôi thông qua ORM và không thông qua trình kích hoạt hoặc procs được lưu trữ.

0

Tùy chọn của tôi là thay đổi hoặc thêm một cột vào bảng MySQL của bạn như LastChanged với loại là TIMESTAMP và giá trị mặc định là CURRENT_TIMESTAMP. Vì vậy, khi một hàng được thêm vào bảng ngày được tạo tự động.

Sau đó, bạn có thể có một kích hoạt trong sau khi cập nhật như thế nào, mà sẽ cập nhật ngày thay đổi cuối cùng một lần kỷ lục đã được sửa đổi

IF NEW.LastChanged = '0000-00-00 00:00:00' THEN 
     SET NEW.LastChanged = NOW(); 
    END IF 
Các vấn đề liên quan