2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「社内LT会」Prisma ORM

Last updated at Posted at 2023-09-20
1 / 20

※この資料は2022年10月に社内で行ったLT会の資料をqiita slide化したものです
※記事の内容は間違いがあり得ますので、ご了承いただけると幸いです。内容の間違い、認識の違い、違う意見などありましたら、コメント大歓迎です!


今日、持ち帰って欲しいのは

ORMに少しでもポジテイブな興味を持っていただければ!


ORMご存じですか?
ご経験はありますでしょうか?


ORM?

  • Object-relational mapping
  • データベースとオブジェクト指向プログラミング言語の間の非互換なデータを変換するプログラミング技法

ORM?

image.png


ORM on Nodejs

Prisma ORM 👈こちら使ってみました
※その他 : TypeORM, Sequelize, Mongoose, ...


本題

  • なぜ Prismaだったのか?
  • なぜ ORMだったのか?(with prisma)
  • Demonstration
  • 実際使ってみると課題もある!
  • <まとめ>それでもORMは積極的に採用する価値がある
  • REFERENCE LINK

なぜ Prismaだったのか?

①Openbaseにいい感じにGithub Startsがついていた
image.png


なぜ Prismaだったのか?

②ドキュメントが着実な印象
image.png


なぜ Prismaだったのか?

③参考資料が多くあった
image.png


大事なのは…

なぜORMだったのか?(with PrismaORM)


なぜ ORMだったのか?(with prisma)

①DB SchemaをMigration管理したい
image.png


なぜ ORMだったのか?(with prisma)

  • ②DB定義をcode-base document化したい。
  • ③Data Modelを自動生成しTyped Object化したい

image.png


なぜ ORMだったのか?(with prisma)​

  • ④動的にQueryを書かなくていい​
    • 一元化されたDatabase Operation Interface with Prisma Model(like Repository)​
    • => ③④が繋がり、維持補修、テストがしやすい!​

https://www.prisma.io/docs/concepts/components/prisma-client/crud

image.png


Demonstration​

  • Prisma Schema 作成​
  • Prisma Model生成 + ERD 自動生成​
  • Prisma Migrate 実行​
  • Postgresql 確認​

※デモにおいては以下の資料をご参考ください。
Start from scratch with relational databases (15 min) - Prisma


実際使ってみると課題もある!​

  • 複雑なQuery要件には要注意!(複雑な要件、性能最適化課題)​
    • ORM Libraryで提供する操作interfaceだけでは逆に複雑化されることも多い​
    • Query OptimizeもORMに任せるので、必ずしも性能がいいQuery動作をするとは保証できない​
    • 例​: 集計要件、多数のテーブル更新や他のテーブルデータ参照更新など
  • データモデリングスキルが重要!(学習コスト・運用コスト)​
    • 1テーブルに席にが集約せず、また不要に分けない、絶妙なラインの設計が求められる​
    • DDDアーキテクチャーと相性がいいのでおすすめ​

まとめ​

それでも​、ORMは積極的に採用する価値がある​
image.png


REFERENCE LINK


REFERENCE LINK

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?