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

Làm cách nào để lưu trữ các thẻ trong các thẻ MySQL, một trường trong tổng số hoặc một trường cho mỗi thẻ?

Tôi nghĩ rằng Nhiều đến Nhiều mối quan hệ sẽ giúp bạn

một cái gì đó giống như

--------             -----------------           ------------
- tags -   <-------> - products_tags - <-------> - products - 
--------             -----------------           ------------

chỉnh sửa:

Phương pháp tiếp cận Nhiều đến Nhiều là phương pháp được chuẩn hóa hơn, nhưng tôi cho rằng khó thực hiện nhất, vì dựa trên các phép nối để lấy tất cả các thẻ cho một "sản phẩm" nhất định trong trường hợp này. nhược điểm:

  1. hoàn toàn bình thường hoá
  2. KHÔ :vì nếu bạn cần thay đổi tên thẻ, bạn có thể làm điều đó và bạn sẽ thấy sự thay đổi ở mọi nơi
  3. v.v.

cách tiếp cận khác là lưu tất cả các thẻ trong một trường được phân tách bằng một thứ gì đó (giả sử là dấu phẩy). Ở đây bạn có tốc độ nhận các thẻ. bạn chỉ cần tách các thẻ bằng dấu phân tách đó và đó là nó. Lưu các thẻ cũng dễ dàng hơn. Nhưng tôi không thích cách làm này vì nếu bạn cần cập nhật một mẫu, bạn cần phải chuyển từng bài viết, chia nhỏ, cập nhật và sau đó lưu ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phân vùng động + TẠO NHƯ trên HIVE

  2. Làm cách nào để mô tả tất cả các bảng trong cơ sở dữ liệu thông qua một câu lệnh?

  3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Lỗi liên kết truyền thông

  4. Nhiều biểu mẫu và một bộ thu PHP

  5. mysql chèn nếu giá trị không tồn tại trong bảng khác