Tôi đang làm việc trên trang tìm kiếm cho phép người dùng tìm kiếm nhà để bán. Tiêu chí tìm kiếm điển hình bao gồm giá/mã zip/# phòng ngủ/v.v.Phương pháp hay nhất để lưu trữ "tìm kiếm đã lưu" trong cơ sở dữ liệu
Tôi muốn cho phép người dùng lưu tiêu chí này vào cơ sở dữ liệu và gửi email cho những ngôi nhà mới hàng ngày.
tôi có thể một trong hai:
1) Serialize một "SavedSearch" đối tượng vào một chuỗi và lưu rằng cơ sở dữ liệu, sau đó deserialize khi cần thiết.
2) Có danh sách các cột trong tblSavedSearch tương ứng với tiêu chí tìm kiếm - price/zip/# bedrooms/etc.
Tôi lo ngại nếu tôi chọn tùy chọn 1, tiêu chí tìm kiếm đã lưu của tôi sẽ thay đổi và để các đối tượng được tìm kiếm trong cơ sở dữ liệu không hợp lệ, nhưng tùy chọn 2 cũng không giống như giải pháp tối ưu.
Người khác đã giải quyết vấn đề này như thế nào?
Tôi đã kết thúc với cách tiếp cận này. Nó không phải là sexy như serializing truy vấn, nhưng kể từ khi tôi chạy tìm kiếm đã lưu mỗi đêm, nó chỉ là một vài dòng mã cho tôi và là một lập trình lười biếng, nó là "tốt nhất" đối với tôi. Cảm ơn Vincent! –
Tôi chỉ muốn thêm rằng mặc dù nó có thể * có vẻ * sexy để sắp xếp truy vấn và lưu trữ nó, điều này có thể dẫn đến nhức đầu nghiêm trọng nếu cấu trúc của đối tượng truy vấn được thiết kế kém hoặc b) khi đối tượng được phức tạp hơn ví dụ Cập nhật các đối tượng được tuần tự hóa trong db vì chúng không hỗ trợ các mặc định hợp lý (bạn sẽ phải mã hóa xung quanh) có thể rất lộn xộn. Và lưu ý cách các trang web/dịch vụ khác (Google, Yahoo !, Globrix (ví dụ tốt trong tìm kiếm đã lưu của họ), v.v.) sử dụng Kiến trúc RESTful hơn, mang lại lợi ích thô của URL và HTTP. –
Vì vậy, kịch bản cron sẽ thực hiện một yêu cầu HTTP cho mỗi tìm kiếm đã lưu? Không phải là một yêu cầu HTTP đầy đủ rất nhiều chi phí chỉ để có được dữ liệu cốt lõi? Ngoài ra, điều này không giả định rằng đầu ra (HTML, tôi đoán) được hiển thị cho một yêu cầu web phù hợp để sử dụng trong email? Tôi đoán bạn có thể vượt qua một lá cờ thay đổi đầu ra, một loại thay đổi ngữ cảnh. Nhưng điều đó vẫn không giải quyết được chi phí HTTP. Whaddya nghĩ sao? –