Prisma ORM μ μ¬μ©ν RDB Data modeling
-
Prisma ORM μ μ¬μ©ν΄, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ (Relational Database) λ°μ΄ν° λͺ¨λΈλ§ κ²½νμ κ΄ν κΈμ λλ€.
μΌλ§μ λΆν° μλ‘ μμν νλ‘μ νΈμμ, μλΉμ€λ₯Ό μ²μλΆν° μ°Έμ¬νμ¬ λ§λ€κ² λμλ€. κΈ°ν λ¨κ³μμ κΈ°νμ, λμμ΄λ, λλ£ κ°λ°μμ ν¨κ» Application μμ λκ°, 무μμ, μ΄λ»κ² ν μ§ λ±μ μ΄μΌκΈ°νλ€λ³΄λ, DB μ μ΄λ€ κ²λ€μ λ£μ΄μΌ νλ μ§ κ°μ΄ μλ€.
λ§λ€κ³ μλ μλΉμ€λ SNS μλΉμ€λΌ, μ£Όλ‘ κΈ°νλ¨μμ μ΄λ¬ν μ΄μΌκΈ°λ€μ΄ μ€κ°λ€.
"μ΄λλ―Όμ΄ ν¬μ€νΈλ₯Ό μ¬λ¦¬λ©΄, κ·Έ λ°μ μ μ λ€μ΄ μ견μ μ΄μλ‘ λ¬μμ£Όκ³ , λ λ€λ₯Έ μ μ λ€μ΄ μ΄μμ λκΈμ λ¬μμΌλ©΄ μ’κ² μ΅λλ€. ...."
λ°μ΄ν° λͺ¨λΈλ§μ ν λλ, application μ main entitiy λ€μ μ ν΄μΌ νλλ°, μ 짧μ λ§μμλ μ΄λ―Έ 5κ°μ μν°ν°κ° λμ¨ μ μ΄λ€.
μ΄λ² νλ‘μ νΈμμλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ ννλλ°, μ¬μ€ MongoDB κ°μ NoSQL μ μ¨λ³΄κ³ λ μΆμμΌλ, λ°μ΄ν° μν°ν°λ€ κ°μ κ΄κ³κ° λͺ ννκ³ λλΆλΆμ μν°ν°λ€μ΄ μλ‘ μ’ μλ κ΄κ³μκΈ° λλ¬Έμ΄λ€.
Prisma ORM μ μ νν μ΄μ
sql μ μ§μ λ λ € table ꡬ쑰 μμ£Όλ‘ νλ‘κ·Έλλ°νλ κ²λ³΄λ€ κ°μ²΄ μ§ν₯μ μΈ νλ‘κ·Έλλ°μ ν΄λ³΄κ³ μΆμκ³ , λλ£ κ°λ°μμ νλ‘ νΈ λ¨μμλ νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©ν΄ κ°μ²΄ λ¨μμμ μ¬λμκ² κ³΅λΆνλ©° κ°λ°ν΄λ³΄μλ λͺ©νκ° μμκΈ°μ, λ°±μλ λ¨μμλ λ°μ΄ν° λͺ¨λΈλ§ κ°μ²΄ μμ£Όλ‘ ν μ μκ² ORM μ΄ λμμ£ΌκΈ° λλ¬Έμ΄λ€.
μ΄λ€ μ μμ κ°μ²΄ μ§ν₯μ μΈ λ°μ΄ν° λͺ¨λΈλ§μ λμμ΄ λλκ°?
Prisma λ₯Ό μ¬μ©νλ©΄, prisma schema λΌλ νμΌμμλ§ db μμ μ°κ²°μ΄ μ΄λ£¨μ΄μ§λ€. μ΄ νμΌμμ λ°μ΄ν° λͺ¨λΈλ§μ νλλ°, μ΄λ―Έ sql λ‘ μμ±λ ν μ΄λΈλ€μ introspect νμ¬ prisma schema μ λ°μνλ λ°μ΄ν° λ 벨 λ¨μμ λ°©λ²κ³Ό, κ°μ²΄ μ§ν₯μ μΌλ‘ μκ°νμ¬ prisma schema μ λ°μ΄ν° λͺ¨λΈλ§μ μ§μ νμ¬ migrate λ₯Ό ν΅ν΄ table μ μμ±νλ λ°©λ²μ΄ μλ€.
λ°λ‘ μ΄ λ λ²μ§Έ migrate λ₯Ό ν λ, κ°λ°μλ schema λ₯Ό μ§μ μμ±νλ©° μν°ν°λ€μκ° νλ νμ , μν°ν° κ°μ κ΄κ³μ κ΄ν΄ κ΅μ₯ν λ§μ κ³ λ―Όμ νκ² λλ€. (κ²½νλ΄μ΄λ€.)
λν, query λ₯Ό μ€ννμ¬ data λ₯Ό μ½κ³ , μμ νλ λ¨κ³μμλ ORM μ μ¬μ©νλ©΄ μ§μ sql μ λ 리λ κ²μ΄ μλλΌ, μΆμνλ₯Ό ν΅ν΄ κ°λ°μκ° prisma.user.findMay μ΄λ° μμΌλ‘ object μ²λΌ μκ°ν μ μκ² λμμ€λ€. μ΄λ μ query λ₯Ό μ¨μ 'SELECT * from USER where ~' μμΌλ‘ νλ κ²κ³Όλ μκ°νλ λ°©ν₯μ΄ λ¬λΌμ§λ€.