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

Cách tốt nhất để lưu trữ và truy xuất các từ đồng nghĩa trong cơ sở dữ liệu mysql

Không sử dụng một (một) chuỗi để lưu trữ các mục nhập khác nhau.

Nói cách khác:Xây dựng một bảng từ (word_ID, từ) và một bảng từ đồng nghĩa (word_ID, từ đồng nghĩa_ID) sau đó thêm từ vào bảng từ và một mục nhập cho mỗi từ đồng nghĩa vào bảng từ đồng nghĩa.

CẬP NHẬT (thêm từ đồng nghĩa thứ 3)

Bảng từ của bạn phải chứa mọi từ (TẤT CẢ), bảng từ đồng nghĩa của bạn chỉ chứa các con trỏ đến từ đồng nghĩa (không phải một từ duy nhất!) ..

Nếu bạn có ba từ:A, B và C, là các từ đồng nghĩa, DB của bạn sẽ là

WORD_TABLE            SYNONYM_TABLE
ID | WORD             W_ID | S_ID
---+-----             -----+-------
1  | A                  1  |  2
2  | B                  2  |  1
3  | C                  1  |  3
                        3  |  1
                        2  |  3
                        3  |  2  

Đừng sợ có nhiều mục nhập trong SYNONYM_TABLE, chúng sẽ được máy tính quản lý và cần thiết để phản ánh mối quan hệ hiện có giữa các từ.

Cách tiếp cận thứ 2

Bạn cũng có thể bị cám dỗ (tôi không nghĩ bạn nên làm như vậy!) Với một bảng có các trường riêng biệt cho từ và danh sách các từ đồng nghĩa (hoặc ID) (word_id, word, Synym_list). Lưu ý rằng điều đó trái với cách hoạt động của DB quan hệ (một trường, một dữ kiện).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng giá trị chuỗi / cột làm hằng số khoảng ngày của mysql (NGÀY, THÁNG ...)?

  2. lỗi 1064 (42000) trong khi cố gắng thực thi lệnh mysqldump

  3. Đếm các chữ cái viết hoa trong chuỗi

  4. Thao tác dữ liệu utf8mb4 từ MySQL với PHP

  5. phiên bản php-mysql xung đột với máy chủ Mysql