2010-05-03 40 views
5

Tôi đã phát triển một ứng dụng web có sử dụng máy chủ web và cơ sở dữ liệu được lưu trữ bởi máy chủ web (trên mặt đất) và máy chủ chạy trên Amazon Web Services EC2. Cả hai máy chủ đều có thể được người dùng sử dụng trong một phiên và cả hai máy chủ sẽ cần biết một số thông tin về phiên của người dùng. Tôi không muốn POST các thông tin đó là cần thiết bởi cả hai máy chủ bởi vì tôi không muốn nó được hiển thị cho các trình duyệt/Firebug vv Vì vậy, tôi cần dữ liệu phiên của tôi để tồn tại trên các máy chủ. Và tôi nghĩ rằng điều này có nghĩa là tùy chọn tốt nhất là lưu trữ tất cả/một số dữ liệu mà tôi cần trong cơ sở dữ liệu thay vì trong một phiên. Điều dễ nhất để làm dường như là giữ các phiên nhưng để POST session_id giữa các máy chủ và sử dụng điều này làm khóa để tra cứu dữ liệu tôi cần từ bảng 'user_session_data' trong cơ sở dữ liệu.Các phương pháp hay nhất để lưu trữ dữ liệu phiên PHP trong cơ sở dữ liệu là gì?

Tôi đã xem bài viết của Tony Marston "Saving PHP Session Data to a database" - tôi có nên sử dụng bảng này hoặc dữ liệu phiên mà tôi cần và session_id là đủ chính không? Điều gì sẽ là nhược điểm của việc tạo bảng của riêng tôi và thiết lập các phương thức để lưu trữ dữ liệu tôi cần trong cơ sở dữ liệu?

Trả lời

2

Nếu tốc độ truyền và thời gian phản hồi giữa EC2 và máy chủ cơ sở dữ liệu đủ tốt, tôi thấy không có vấn đề với việc lưu trữ dữ liệu phiên như được mô tả và chuyển session_id cùng với khi chuyển người dùng đến một máy chủ khác.

-

Lưu trữ dữ liệu phiên trong cơ sở dữ liệu là thực tế khá phổ biến. "Lưu trữ dữ liệu trên một phiên" không ngụ ý bất kỳ phương pháp lưu trữ thực tế nào - việc tạo tệp trên đĩa chỉ đơn giản là cài đặt mặc định của PHP, vì nó không yêu cầu bất kỳ thiết lập nào.

Các vấn đề liên quan