显示唯一键而不是外键TypeOrm-MySql

时间:2020-01-03 08:11:45

标签: mysql node.js foreign-keys typeorm unique-key

这可能是一个愚蠢的错误,但是我需要理解这一错误。我只是用MySql DB(使用TypeOrm)创建一个一对一关系的简单示例,我浏览了typeorm.io上提供的同一文档。

https://typeorm.io/#/one-to-one-relations

当我与用户和个人资料实体创建一对一关系时,个人资料ID为用户表上的唯一键而不是外键。您能在这里让我清楚吗,只需通过文档建立一对一关系即可。

添加的实体代码:

User.ts

import {Entity,PrimaryGeneratedColumn,Column,OneToOne ,JoinColumn} from "typeorm";
import { Profile } from "./Profile";

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @OneToOne(() => Profile)
  @JoinColumn()
  profile: Profile;
}

Profile.ts

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()
export class Profile {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  gender: string;

  @Column()
  photo: string;
}

用户表描述,在这里我突出显示了**** UNI ******,我认为这里需要显示FOREIGN KEY

mysql> desc user;
+-----------+--------------+------+-----+---------+----------------+
| Field   | Type     | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id      | int(11)    | NO | PRI   | NULL | auto_increment |
| name     | varchar(255) | NO  |  NULL | |
| profileId | int(11) |  YES | ****UNI***** | NULL |
+-----------+--------------+------+-----+---------+----------------+

谢谢。

0 个答案:

没有答案
相关问题