我正在博客网站上工作并坚持这一点:
的MySQL
cat_list
'表包含以下列:cat_id
,cat_name
(14个条目),post
'表有几列,其中category
就是其中之一,我需要存储博客帖子被标记到的类别ID 。类别ID存储在array(19820,83729)
中。 [因为博客帖子可以标记为多个类别] 我尝试按一个类别ID搜索“post
”并加入“cat_list
”来检索cat name
。
请帮我这样做,还是我应该考虑其他任何其他数据库设计?
答案 0 :(得分:0)
如果您的帖子可以使用多个类别进行标记,则表格模型错误。您需要博客帖子和类别之间的关联表。从category id
表中删除post
,然后创建一个包含post-category
和post-id
列的表category-id
。然后还在这两列上添加索引,以加快两个方向的搜索速度(按类别或邮寄)。
答案 1 :(得分: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");
更改帖子的ID以选择类别。