这可能是一个愚蠢的错误,但是我需要理解这一错误。我只是用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 |
+-----------+--------------+------+-----+---------+----------------+
谢谢。