ORM & Prisma
クライアントはexpressサーバにリクエストを送信します.データをインポートするには、expressサーバをmysqlサーバに接続する必要があります.ORMを使用します.
ORM (Object Relational Mapping)
フィールドを示すユーザーを追加し、@relationに記入します. pkを含むフィールドに、Fkを含むプロファイルを入力します. 一対多の関係でも同じようにすればいい!
ORM (Object Relational Mapping)
データもオブジェクトとして管理すればどんなにいいですか?これは一つの考えです.class Pet {
constructor(name, owner, age){
this.name = name;
this.owner = owner;
this.age = age;
}
}
名前のクラスを作成してデータを作成したらどうですか.
mysqlに直接接続する必要はありません.JavaScript構文を使用してモデリングできます.
移行(移行/移行)
コードで作成したクラスを実際のデータベースに移動するプロセス.자바스크립트로 만든 모델 => migrations => 데이터베이스
ORMは、クエリ文以外の言語で記述されたコードをクエリ文に翻訳してコマンドを解放します.
行を整理する
ORMでは、サーバとデータベースを接続し、クエリー文ではなくデータベースを操作するときに他の言語を使用できます.このプロシージャを移行と呼びます.
Prisma
Nodejsおよびexpress環境での使用に適したORMはPrismaである.Prismaの基本的な使い方を学びましょう.
Presmaのインストールnpm install prisma --save-dev
npm install @prisma/client --save-dev
Presma接続npx prisma init //초기 세팅
Prismaフォルダとインストールenvは正常です.
prismaフォルダにschemaがあります.Prismaがあることを確認
1データベースへの接続
⎿ schema.prisma
providerをmysqlに変更します.datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
⎿.env
環境変数を使用可能にします.
独自のデータベースurlを作成します.DATABASE_URL = "mysql://유저이름:비밀번호@localhoset::3306/Database이름"
2▼▼▼モデリング
構文については、Data modelを参照してください.
⎿ schema.prisma
tableを追加する方法.model User {
id Int @id @default(autoincrement())
title String
@@map("users")
}
Userを使用してクラスを表し、Pasta記号を使用してJsの構文を表します.ただし、データベース内のテーブル名は、@@map
を使用して小文字+マルチフォームの会議を保護します.
migrations
npx prisma migrate dev --name 파일이름
接続したデータベースに正常にアクセスし、prismaフォルダの下に날짜_파일이름
を含むフォルダがあることを確認してください.いどうsqlでは、クエリー文の変化が表示されます.-- CreateTable
CREATE TABLE `users` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`title` VARCHAR(191) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
その他の内容
Relations
1対1の関係
クエリ文CREATE TABLE "User" (
id SERIAL PRIMARY KEY
);
CREATE TABLE "Profile" (
id SERIAL PRIMARY KEY,
"userId" INTEGER NOT NULL UNIQUE,
FOREIGN KEY ("userId") REFERENCES "User"(id)
);
prismamodel User {
id Int @id @default(autoincrement())
profile Profile?
}
model Profile {
id Int @id @default(autoincrement())
user User @relation(fields: [userId], references: [id])
userId Int // relation scalar field (used in the `@relation` attribute above)
}
class Pet {
constructor(name, owner, age){
this.name = name;
this.owner = owner;
this.age = age;
}
}
자바스크립트로 만든 모델 => migrations => 데이터베이스
Nodejsおよびexpress環境での使用に適したORMはPrismaである.Prismaの基本的な使い方を学びましょう.
Presmaのインストール
npm install prisma --save-dev
npm install @prisma/client --save-dev
Presma接続npx prisma init //초기 세팅
Prismaフォルダとインストールenvは正常です.prismaフォルダにschemaがあります.Prismaがあることを確認
1データベースへの接続
⎿ schema.prisma
providerをmysqlに変更します.
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
⎿.env
環境変数を使用可能にします.
独自のデータベースurlを作成します.
DATABASE_URL = "mysql://유저이름:비밀번호@localhoset::3306/Database이름"
2▼▼▼モデリング
構文については、Data modelを参照してください.
⎿ schema.prisma
tableを追加する方法.
model User {
id Int @id @default(autoincrement())
title String
@@map("users")
}
Userを使用してクラスを表し、Pasta記号を使用してJsの構文を表します.ただし、データベース内のテーブル名は、@@map
を使用して小文字+マルチフォームの会議を保護します.migrations
npx prisma migrate dev --name 파일이름
接続したデータベースに正常にアクセスし、prismaフォルダの下に날짜_파일이름
を含むフォルダがあることを確認してください.いどうsqlでは、クエリー文の変化が表示されます.-- CreateTable
CREATE TABLE `users` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`title` VARCHAR(191) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
その他の内容Relations
1対1の関係
クエリ文
CREATE TABLE "User" (
id SERIAL PRIMARY KEY
);
CREATE TABLE "Profile" (
id SERIAL PRIMARY KEY,
"userId" INTEGER NOT NULL UNIQUE,
FOREIGN KEY ("userId") REFERENCES "User"(id)
);
prismamodel User {
id Int @id @default(autoincrement())
profile Profile?
}
model Profile {
id Int @id @default(autoincrement())
user User @relation(fields: [userId], references: [id])
userId Int // relation scalar field (used in the `@relation` attribute above)
}
2」関係
table1 == table1_table2 === table2
中間テーブルにfkを作成すればいいです.Reference
この問題について(ORM & Prisma), 我々は、より多くの情報をここで見つけました https://velog.io/@xcc629/ORM-Prismaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol