首页 > 其他分享 >博客网站开发指南1:migration

博客网站开发指南1:migration

时间:2023-12-06 16:00:12浏览次数:31  
标签:指南 标签 博客 tag migration article table id Schema

文章表设计

下面是一个示例的迁移设计,用于创建博客文章表:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateArticlesTable extends Migration
{
    public function up()
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->unsignedBigInteger('author_id');
            $table->unsignedBigInteger('category_id');
            $table->timestamps();

            $table->foreign('author_id')->references('id')->on('users')->onDelete('cascade');
            $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
        });
    }

    public function down()
    {
        Schema::dropIfExists('articles');
    }
}

在这个示例中,articles 表包含以下字段:

  • id:主键 ID。
  • title:文章标题。
  • content:文章内容。
  • author_id:作者对应的用户 ID,与 users 表进行外键关联。
  • category_id:文章分类对应的分类 ID,与 categories 表进行外键关联。
  • timestamps():自动维护的创建时间和更新时间字段。

在迁移文件中,我们使用了 foreign() 方法来定义外键关系。onDelete('cascade') 选项表示当关联的用户或分类被删除时,对应的文章也会被自动删除。

此外,您还可以创建额外的迁移文件来创建关联的标签表、点赞表和收藏表。这些表可以与 articles 表进行关联,并使用外键来建立关系。

希望这个示例对您有所帮助!如果您需要更多的帮助,请随时提问。

SEO

在SEO(搜索引擎优化)中,Meta标签是一种HTML标签,用于提供有关网页内容的元数据(metadata)。以下是几个常用的Meta标签及其作用:

  1. <title>标签:这是最重要的Meta标签之一,用于定义网页的标题。搜索引擎通常将标题作为网页在搜索结果中显示的主要标题,因此编写具有相关关键词的吸引人标题是重要的。

  2. <meta name="description" content="描述内容">标签:该标签用于提供网页的描述信息。搜索引擎通常将描述作为网页在搜索结果中的摘要显示。编写有吸引力、准确、包含关键词的描述可以提高点击率。

  3. <meta name="keywords" content="关键词1, 关键词2, ...">标签:该标签用于指定网页的关键词。尽管搜索引擎对关键词标签的权重不再像过去那样重要,但仍然可以作为一个指导,帮助搜索引擎了解网页内容。

  4. <meta name="robots" content="指令">标签:该标签用于控制搜索引擎爬虫对网页的行为。常见的指令包括:

    • "index":允许搜索引擎索引该网页。
    • "noindex":禁止搜索引擎索引该网页。
    • "follow":允许搜索引擎跟随该网页上的链接。
    • "nofollow":禁止搜索引擎跟随该网页上的链接。

这些Meta标签可以在网页的<head>标签中添加。请注意,虽然Meta标签对于SEO仍然有一定的重要性,但搜索引擎的算法和优化方法不断发展,其他因素如内容质量、外部链接、用户体验等也对SEO产生影响。因此,在进行SEO优化时,需要综合考虑多个因素来提高网页的排名和可见性。

标签设计

如果您希望文章可以添加多个标签,可以使用多对多关系来实现。以下是一个示例的迁移设计,用于创建文章表、标签表和它们之间的关联表:

首先,创建迁移文件来创建标签表:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateTagsTable extends Migration
{
    public function up()
    {
        Schema::create('tags', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('tags');
    }
}

接下来,创建迁移文件来创建文章和标签之间的关联表:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateArticleTagTable extends Migration
{
    public function up()
    {
        Schema::create('article_tag', function (Blueprint $table) {
            $table->unsignedBigInteger('article_id');
            $table->unsignedBigInteger('tag_id');
            $table->timestamps();

            $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
            $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');

            $table->primary(['article_id', 'tag_id']);
        });
    }

    public function down()
    {
        Schema::dropIfExists('article_tag');
    }
}

在这个示例中,tags 表包含标签的信息,article_tag 表用于关联文章和标签。article_tag 表包含以下字段:

  • article_id:文章 ID,与 articles 表进行外键关联。
  • tag_id:标签 ID,与 tags 表进行外键关联。
  • timestamps():自动维护的创建时间和更新时间字段。

使用 primary(['article_id', 'tag_id']) 方法将 article_idtag_id 列定义为联合主键,确保每个文章和标签的组合是唯一的。

通过这种多对多关系,每篇文章可以与多个标签相关联,每个标签也可以与多篇文章相关联。

希望这个示例对您有所帮助!如果您有其他问题,请随时提问。

标签:指南,标签,博客,tag,migration,article,table,id,Schema
From: https://www.cnblogs.com/laraveler/p/17879747.html

相关文章

  • 技术博客:Vue中各种混淆用法汇总
    ​ 技术博客:Vue中各种混淆用法汇总 摘要本文主要介绍了在Vue中使用的一些常见混淆用法,包括newVue()、exportdefault{}、createApp()、Vue.component、Vue3注册全局组件、Vue.use()等,以及如何使用混淆器对代码进行加固,保护应用安全。引言在Vue开发中,对于新手来说,常常会......
  • 博客园主题设置
    前言浏览博客的时候,偶然发现别的博主设置的主题很简约好看,一开始以为是自定义的样式,再到发现第二个博主也用着同样的样式,才发现是有“皮肤主题”的,然后才发现便捷的博客园主题设置方式。设置方式我的博客->管理->设置然后就进入到了设置界面####接下来进行设置博客......
  • 最新版本——Hadoop3.3.6单机版完全部署指南
    大家好,我是独孤风,大数据流动的作者。本文基于最新的Hadoop3.3.6的版本编写,带大家通过单机版充分了解ApacheHadoop的使用。本文更强调实践,实践是大数据学习的重要环节,也能在实践中对该技术有更深的理解,所以一些理论知识建议大家多阅读相关的书籍(都在资料包中)。本文档版权......
  • KubeKey 升级 KubeSphere 和 Kubernetes 补丁版本实战指南
    作者:运维有术前言知识点定级:入门级KubeKey如何升级KubeSphere补丁版本KubeKey如何升级Kubernetes补丁版本KubeSphere和Kubernetes升级准备及验证KubeKey升级KubeSphere和Kubernetes的常见问题实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)......
  • 冲刺博客(6)
    目录今日完成的任务开发或测试任务调研任务学习技术任务今日完成的任务1.继续补充并调试前几天编写的代码,进行基础的调试运行;2.具体任务:学号姓名任务20211217周哲成功能测试20211201李柏林填补项目漏洞20211210王宇轩填补项目漏洞20211212廖敏烨证......
  • HydroOJ 踩坑指南(2)服务器选择和部署
    Hydro官方的高级域其实不错,还支持自定义logo和域名,功能也全,但是用了自定义域名,很多的题包括洛谷的就没法用了,而且很多项没法自定义,偶尔会响应时间过长,题目数据不在本地等等,最后发现,还不如自己配置个服务器,这样更有折腾的成就感.服务器的选择可以用阿......
  • 软件测试/人工智能|Python算术运算符:入门指南
    前言在编写程序时,可以使用算术运算符来进行基本的数学计算。Python中的算术运算符包括加法、减法、乘法、除法、取模和幂运算。本文就给大家介绍一下Python算术运算符的使用。加法运算符+加法运算符用于将两个数值相加,例如,a+b表示将a和b相加的结果。如果a和b都是数字,则加法......
  • 年度最佳!推荐3款产品指南搭建工具!
    引言:在当今竞争激烈的市场中,为产品提供清晰、易懂的指南和文档非常重要。而搭建一个优质的产品指南网站能够帮助企业提供一流的技术支持和用户体验。在本文中,我们将推荐三款备受赞誉的产品指南搭建工具,其中包括备受推崇的Helplook,助您为产品提供卓越的指南服务。Helplook:Helplook是......
  • 软件测试/人工智能|Python运算符:初学者指南
    什么是运算符?运算符是用于进行各种运算操作的符号或关键词。在数学和计算机编程中,运算符被用来表示不同的运算操作,例如加法、减法、乘法、除法等。比如:1+2,其中,1和2为操作数,+为运算符。a=18,其中,a和18为操作数,=为运算符。print(),其中,print为操作数,()为运算符。Pyt......
  • HydroOJ 踩坑指南(1)狡猾的分布式官方文档
    本系列旨在记录使用HydroOJ时的一些坑点,更全的说明文档请查看官方文档。欢迎联系本人QQ补充:2422609586.HydroOJ官方QQ群:1085853538.入门第一坑:官方文档不止一处!都说学习项目要先认真读文档,HydroOJ的文档使用了分布式阅读系统,并异地多中心部署(bushi),所以需要汇总一下:......