当前位置: 首页 > news >正文

网站建设模拟软件十大基本营销方式

网站建设模拟软件,十大基本营销方式,杭州网站设计开发,做网站建设的技巧在使用 ORM(如 TypeORM)进行实体关系设计时,OneToMany 和 ManyToOne 是非常重要的注解,常用来表示两个实体之间的一对多关系。下面通过例子详细说明它们的使用场景和工作方式。 OneToMany 和 ManyToOne 的基本概念 ManyToOne 表示…

在使用 ORM(如 TypeORM)进行实体关系设计时,@OneToMany@ManyToOne 是非常重要的注解,常用来表示两个实体之间的一对多关系。下面通过例子详细说明它们的使用场景和工作方式。


@OneToMany@ManyToOne 的基本概念

  1. @ManyToOne
    表示 “多” 的一方指向 “一” 的一方。它总是定义在关系的 “多” 一侧。

    • 数据库中通常对应一个外键列。
    • 该装饰器是关系的拥有方,负责维护外键。
  2. @OneToMany
    表示 “一” 的一方指向 “多” 的一方。它总是定义在关系的 “一” 一侧。

    • 数据库中没有直接对应的列,而是反向映射。
    • 必须与 @ManyToOne 配合使用,不能单独存在。

示例:用户与文章的关系

场景:

  • 一个用户可以拥有多篇文章。
  • 每篇文章属于一个用户。
1. 实体设计
User 实体
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm';
import { Article } from './article.entity';@Entity()
export class User {@PrimaryGeneratedColumn()id: number;@Column()name: string;// 一个用户拥有多篇文章@OneToMany(() => Article, (article) => article.author)articles: Article[];
}
Article 实体
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm';
import { User } from './user.entity';@Entity()
export class Article {@PrimaryGeneratedColumn()id: number;@Column()title: string;@ManyToOne(() => User, (user) => user.articles, { onDelete: 'CASCADE' })author: User; // 每篇文章属于一个用户
}

2. 数据库结构

根据上述实体,TypeORM 将生成以下表结构:

User

idname
1Alice
2Bob

Article

idtitleauthorId
1First Post1
2Second Post1
3Third Post2

3. 插入数据
创建用户和文章
const userRepository = dataSource.getRepository(User);
const articleRepository = dataSource.getRepository(Article);// 创建用户
const user = userRepository.create({ name: 'Alice' });
await userRepository.save(user);// 创建文章
const article1 = articleRepository.create({ title: 'First Post', author: user });
const article2 = articleRepository.create({ title: 'Second Post', author: user });
await articleRepository.save([article1, article2]);

4. 查询数据
查询用户的文章
const userWithArticles = await userRepository.findOne({where: { id: 1 },relations: ['articles'],
});console.log(userWithArticles);

输出:

{"id": 1,"name": "Alice","articles": [{ "id": 1, "title": "First Post" },{ "id": 2, "title": "Second Post" }]
}
查询文章及其作者
const articleWithAuthor = await articleRepository.findOne({where: { id: 1 },relations: ['author'],
});console.log(articleWithAuthor);

输出:

{"id": 1,"title": "First Post","author": { "id": 1, "name": "Alice" }
}

关键点总结

  1. @ManyToOne 是外键的维护者

    • 它在数据库中定义外键列(如 authorId)。
    • 用于指向关系的 “一” 侧。
  2. @OneToMany 是关系的反向映射

    • 它没有单独的数据库列。
    • 它仅用作 @ManyToOne 的反向映射,表示 “一” 侧可以访问所有 “多” 侧的记录。
  3. relations 必须手动加载

    • TypeORM 默认不会加载关联字段,需在查询时指定 relations
  4. cascade 选项

    • cascade: true 允许保存或删除时级联操作(如在保存用户时自动保存其文章)。

http://www.hrbkazy.com/news/15795.html

相关文章:

  • 福田企业建站推广服务公司软文内容
  • 个人做搜索网站违法吗西安网络推广营销公司
  • 招标网站平台做广告的怎么找客户
  • 猎头做mapping网站活动营销的方式有哪些
  • 做淘宝的人就跟做网站一样小红书怎么做关键词排名优化
  • 用动易做的校园网站广告网站留电话
  • wordpress 设置文章模板重庆网站seo诊断
  • 网站排名优化外包价钱企业网络宣传推广方案
  • 哈尔滨网站建设方案如何对seo进行优化
  • 猴王水果竞猜网站建设信息流优化师简历
  • 二手商品网站制作网站模板搭建
  • 外贸建站平台哪家好指数运算公式大全
  • 网站建设排名的公司深圳最新新闻事件今天
  • 免费建站自助建站seo基础视频教程
  • 如何在国内做网站seo这个行业怎么样
  • 网站建设文献综述模板公司网站建设北京
  • 做网站在哪百度关键词搜索怎么收费
  • 电脑本地网站建设seo公司网站推广
  • 如何做网站的优化可以打广告的平台
  • 百度官方平台北京搜索引擎优化
  • 旅游目的地网站建设的流程沈阳优化推广哪家好
  • 骏域网站建设专家东莞手机优化
  • 网站集约化建设探讨seo关键词优化外包公司
  • 专业建设网站的公司做引流推广的平台600
  • 网站制作公司制作网站的流程是怎样的呢网站seo站外优化
  • 为什么网站建设价格不一淘宝如何提升关键词排名
  • 什么网站可以做设计赚钱的吗百度外链查询工具
  • 关键词库在网站上怎么体现石家庄seo结算
  • 让网站对搜索引擎友好怎样制作属于自己的网站
  • 网站开发容易学网店代运营诈骗