0

我在一个博客网站上工作并坚持这一点:

MySQL

  1. ' cat_list' 表包含列: cat_id, cat_name(14 个条目),
  2. ' post' 表有几列,其中category之一是我需要存储博客文章被标记到的类别 ID的地方。类别 ID 存储在array(19820,83729). [因为一篇博文可以标记为多个类别]

我试图post通过一个类别 ID 搜索“”并加入“ cat_list”以检索cat name. 请帮助我做到这一点,或者我应该考虑其他任何替代数据库设计吗?

4

2 回答 2

0

如果您的帖子可以用多个类别标记,那么您的表格模型是错误的。您需要在博客文章和类别之间建立一个关联表。category idpost表中删除并创建一个包含post-categorypost-id和的表category-id。然后还在这两列上添加索引以加快双向搜索(按类别或按帖子)。

于 2013-01-24T11:24:28.323 回答
0

试试这个:

SELECT c.cat_name FROM post as p 
LEFT JOIN cat_list AS c
ON c.cat_id = p.cat_id
WHERE p.post_id = "3"

样本数据:

CREATE TABLE cat_list(
  cat_id int auto_increment primary key,
  cat_name varchar(30)
  );

CREATE TABLE post (
  post_id int auto_increment primary key,
  cat_id int,
  post varchar(30)
  );

INSERT INTO cat_list (cat_name)
VALUES ("cat1"),("cat2"), ("cat3"),("cat4"),("cat5"),("cat6"),("cat7"),("cat8");

INSERT INTO post (cat_id, post)
VALUES (1,"jnkljlkajlkjaoiuweiuoi"), (1,"wuoieuoiuoidudjhkj"), (2,"eiuuqueiuriewuqyiuu"), (8,"vzbvbxvnbxmnbmn nmncmn");

SQL 小提琴演示

更改帖子的 ID 以选择类别。

于 2013-01-24T13:09:48.380 回答