Chào ạ,
Em đang làm website có chức năng tìm kiếm (bao gồm tìm bằng keyword và các checkbox, radio button trên thanh lọc, thanh menu) các giá trị tìm kiếm là các thuộc tính của sản phẩm
Em có 2 hướng để làm như sau :
Cách 1 : gắn thẻ cho sản phẩm, giống như hashtag trên facebook. bằng cách thêm một bảng hashtag
+-----+--------+-------+-----+
| ID | Name | Price | tag |
+-----+--------+-------+-----+
| 001 | Apple | 300$ | 1 |
+-----+--------+-------+-----+
| 002 | Orange | 499$ | 23 |
+-----+--------+-------+-----+
| 003 | Lemon | 500$ | 124 |
+-----+--------+-------+-----+
+-----+---------------+
| tag | name |
+-----+---------------+
| 1 | xuất xứ Mỹ |
+-----+---------------+
| 2 | Khuyến mãi |
+-----+---------------+
| 3 | giao tận nơi |
+-----+---------------+
| 4 | giá trên 400$ |
+-----+---------------+
lấy mã tag (1,2,3,4) này gán cho các thẻ HTML trên giao giao diện VD < button value="4">Sản phẩm giá trên 400$< button>
rồi trong code backed cũng lấy giá trị này để xử lý cũng như truy vấn database. Nhìn vào mã tag này là biết được người người dùng muốn tìm sản phẩm nào !
Cách 2 : Không thêm bảng phụ tag mà viết function search bằng câu lệnh SQL, cho join hết tất cả các bảng lại với nhau rồi “quét” hết tất cả các cột theo giá trị cần tìm.
Theo em thì cách 1 có nhực điểm là tạo thêm bảng phụ không cần thiết trong database, còn cách 2 thì có thể tốn thời gian truy vấn, giảm hiệu năng của server hoặc có thể không đáng kể.
Cho em hỏi ở ngoài đời thực, trong các dự án thực tế thì người ta triển khai chức năng search này như thế nào ? em cảm ơn !