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

Đếm bản ghi tiêu chí tìm kiếm dựa trên tìm kiếm do người dùng thực hiện (MYSQL PHP)

Tôi đã thử làm điều này trước đây và nó có thể rất chậm tùy thuộc vào số lượng bộ lọc bạn cho phép và số lượng khách sạn bạn liệt kê, chưa kể đến cách bạn đối phó với các khách sạn trùng lặp.

Mặc dù vậy, cuối cùng bạn sẽ có rất ít tùy chọn bộ lọc

  • Loại thuộc tính:chuẩn hóa giá trị này trong một bảng riêng biệt
  • Phòng ngủ:lưu trữ cái này dưới dạng tinyint hoặc smallint (hoặc không dấu), không thể tưởng tượng được có những tài sản trên 255 phòng ngủ và chắc chắn không trên 65k
  • Vị trí:chuẩn hóa điều này trong một bảng riêng biệt, lý tưởng là ở định dạng cây để đảm bảo các mối quan hệ được ghi nhận
  • Xếp hạng theo sao:xếp hạng này có thể được lưu trữ dưới dạng nhỏ xíu không dấu

Bây giờ vấn đề của bạn ở đây là nếu ai đó áp dụng bộ lọc cho 3 phòng ngủ trở lên, bạn vẫn nên nhận các giá trị cho 2 phòng ngủ, 1 phòng ngủ, vì việc thay đổi bộ lọc trở lại thành đó sẽ mang lại kết quả.

Vào cuối ngày, tôi đã giải quyết vấn đề này bằng cách sử dụng một bảng bộ nhớ rất lớn, một số logic để xây dựng các câu lệnh WHERE và JOIN, và một truy vấn riêng lẻ đếm các bản ghi trong một nhóm đã đặt. Tuy nhiên, điều này tương tự như kết quả tìm kiếm của người dùng trong kỳ nghỉ lễ và do đó, dữ liệu được coi là hoàn toàn tạm thời. Đối với mục đích của bạn, một bảng bộ nhớ nhỏ hơn nhiều có thể được chấp nhận, tuy nhiên, nguyên tắc là tương tự.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không có ánh xạ phương ngữ cho loại JDBC:1111

  2. xóa các hàng khỏi nhiều bảng

  3. Nhập giới hạn kích thước tệp trong PHPMyAdmin

  4. Tích hợp MySQL với Python trong Windows

  5. Thực hiện so sánh LIKE trên trường INT