gpt4 book ai didi

php - Bloggish 项目 MySQL 数据库设计问题

转载 作者:行者123 更新时间:2023-11-30 22:50:48 25 4
gpt4 key购买 nike

我不是最擅长 MySQL 的人。这是我第一个在很大程度上使用它的项目。我的想法是,我正在设计一个系统,它可以获取博客类型的文章,并将标签与其相关联(在我的代码中,我将标签称为类别)。这是 MySQL:

CREATE TABLE tb_categories
(
category_id int(4) unsigned NOT NULL auto_increment,
category_name varchar(50) NOT NULL,
is_service tinyint(1) NOT NULL,
PRIMARY KEY (category_id),
UNIQUE (category_name),
);

CREATE TABLE tb_blog_entries
(
blog_entry_id bigint(10) unsigned NOT NULL auto_increment,
blog_entry_title varchar(255) NOT NULL,
blog_entry_subtitle varchar(255) NOT NULL,
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
blog_entry_content TEXT NOT NULL,
author varchar(255) NOT NULL,
publish_anonymously tinyint(1) NOT NULL,
PRIMARY KEY (blog_entry_id)
);

我的问题是,我需要将所选的一个或多个类别映射到每篇博文。我不想在包含所有类别 ID 的博客条目表中添加类似 csv 的列,因为肯定会有更好的方法。但是,我不知道。解决此问题的最佳方法是什么?

最佳答案

如果我没理解错的话,你想要两个表之间的多对多关系。为此,您必须使用像这样的中间表

CREATE TABLE tb_blog_entries_categories
(
blog_entry_id bigint(10) unsigned NOT NULL,
category_id int(4) unsigned NOT NULL,
PRIMARY KEY(blog_entry_id,category_id),
FOREIGN KEY (blog_entry_id) REFERENCES tb_blog_entries(blog_entry_id),
FOREIGN KEY (category_id) REFERENCES tb_categories(category_id)
);

关于php - Bloggish 项目 MySQL 数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com