Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Cara Menyimpan Tag Dalam Database Menggunakan MySQL dan PHP?

Anda harus membagi data Anda menjadi dua tabel, questions dan tags dan hubungkan mereka menggunakan questions_tags bergabung dengan tabel.

CREATE TABLE questions (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  url TEXT NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE tags (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  tag VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE questions_tags (
  question_id INT UNSIGNED NOT NULL REFERENCES questions,
  tag_id INT UNSIGNED NOT NULL REFERENCES tags
);

Saya tidak yakin apa yang count kolom di tabel asli Anda adalah untuk jadi saya melewatkannya.

Dengan menggunakan tabel di atas, Anda dapat menggunakan gabungan untuk menemukan semua pertanyaan dengan tag tertentu atau semua tag pertanyaan.

Sunting

Untuk mendapatkan hitungan untuk setiap tag, Anda bisa melakukan sesuatu seperti ini:

  SELECT tag,
         count(*) AS c
    FROM tags
GROUP BY tag;

Sunting

Untuk mendapatkan jumlah semua tag untuk semua pertanyaan, lakukan ini:

  SELECT t.tag,
         q.question_id,
         count(*) AS c
    FROM tags AS t,
         questions_tags AS qt
         questions AS q
   WHERE t.id = qt.tag_id
     AND qt.question_id = q.id         
GROUP BY t.id, q.id;

Jika Anda hanya ingin menghitung tag atau pertanyaan tertentu, tambahkan WHERE additional tambahan klausa.

Catatan :Semua SQL di atas belum diuji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan waktu yang paling disarankan untuk menggunakan mysql_real_escape_string()

  2. batas mysql di dalam grup?

  3. Bagaimana cara keluar dari karakter SQL khusus dalam ekspresi reguler di Mysql

  4. MySQL Pesan sebelum Grup oleh

  5. Hapus dari tabel menggunakan kolom tabel lain