Chúng tôi có các trang web tin tức giao thông cao, tôi muốn thêm một tính năng mà mọi người sử dụng có thể tìm kiếm thông qua khắp nội dung của trang web, chẳng hạn như news
, polls
, comments
, galleries
, vv. Mỗi loại nội dung có (các) bảng riêng.
Tôi quyết định tạo một bảng chứa tất cả các nội dung từ tất cả các loại:
CREATE TABLE full_text_search
(
master_id INT NOT NULL,
content_text TEXT NOT NULL,
PRIMARY KEY ( master_id )
);
Tôi tạo một số duy nhất master_id
cho từng nội dung của tất cả các loại để xác định từng loại content_text
trong full_text_search
bảng.
ví dụ:
News table:
+----+-------------+---------+---------+----------+------------+
| id | news_title | lead | subtitle| content | master_id |
+----+-------------+---------+---------+----------+------------+
| 1 | sometitle |some lead| subtitle|content 1 | 3 |
| 2 | some title |some lead| subtitle|content 2 | 5 |
+----+-------------+---------+---------+----------+------------+
article table:
+----+-------------+---------+------------------+---------+------------+
| id | title | author | short description| content | master_id |
+----+-------------+---------+------------------+---------+------------+
| 1 | sometitle | someone | very short desc |content1 | 1 |
| 2 | some title | otherone| some short desc |content2 | 4 |
+----+-------------+---------+------------------+---------+------------+
Như bạn có thể thấy master_id
là duy nhất giữa các bảng trên. Khi bao giờ một nội dung mới từ mỗi loại được chèn, tôi cũng nên đưa INSERT
nó vào full_text_search
bảng.
CÂU HỎI
- Đối với nhiều chèn trong một ngày (khoảng 3000 từ tất cả các loại), đó là một giải pháp tốt hay nó là mô hình chống?
- Có phải là sự lựa chọn tốt hơn nếu tôi tách bảng này khỏi các bảng khác của mình và đặt nó vào bất kỳ DB nào khác như RDBMS hoặc NoQuery khác không?
- Bất kỳ giải pháp nào khác?
full_text_search
-table, làm thế nào bạn sẽ xác định kết quả chính xác với loại và id chính xác?