๊ทธ๋ฆฌ๊ณ mongoose์ ๊ฒฝ์ฐ Schema์ ํํ๋ก ์ปฌ๋ ์
(Collection)์ ๋ํ ์์ฑ์ ์ค์ ํ์๋ค๋ฉด, Prisma์ ๊ฒฝ์ฐ Model์ ํํ๋ก ํ
์ด๋ธ(Table)์ ์์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
โ MongoDB์ ์ปฌ๋ ์
(Collection)๊ณผ MySQL์ ํ
์ด๋ธ(Table)์ ๋์ผํ ์์์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
3) ORM์ ์ฅ๋จ์
Prisma์ ๊ฐ์ ORM์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋ํ์ ์ผ๋ก 2๊ฐ์ง๊ฐ ์์ต๋๋ค.
์๋น์ค ์ค์ธ ํ๋ก๋์ ์ ๋ชจ๋ Raw Query์ฝ๋๋ฅผ MySQL์์ Oracle๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ฑฐ๋,
Oracle๋ก ๋ณ๊ฒฝํ์ง ์๊ณ , ์ด๋ ค์ด ํ์ฌ ์ํฉ์ ๊ฐ๋ดํ๊ณ ๊ณ์ MySQL์ ์ด๋ค๊ฑฐ๋ ๋ง์ด์ฃ .
ํ์ง๋ง, ORM์ ๋์ ํ์์ ๊ฒฝ์ฐ ์ฌ๋ฌ๋ถ๋ค์ ์ด๋ฐ ์ํฉ์ ๊ฒช์ง ์๊ณ , ๋จ์ํ ORM์ ์์ฑ๊ฐ๋ง ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์์ ๋กญ๊ฒ DB๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋์ด ๊ฐ๋ฐํ ๋ ์ ํ์ ํญ์ด ๋์ด์ง๊ฒ ๋ฉ๋๋ค.
INSERT INTO Posts (title, content)
VALUE ("์ ๋ชฉ", "๋ด์ฉ");INSERT INTO Posts (title, content, visibility)
VALUE ("์ ๋ชฉ", "๋ด์ฉ", "visible");
# ๊ฒ์๊ธ์ visivility Column์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฐ์ Javascript ์ฝ๋ ๋ง์ผ๋ก๋ ๊ฒ์๊ธ์ ๊ด๋ฆฌํ๋ ํ
์ด๋ธ์ด ์ด๋ค ํ
์ด๋ธ์ ๋ํ๋ด๋์ง ์ธ์งํ๊ธฐ๋ ์ด๋ ค์ธ ๋ฟ๋๋ฌ, ๋ชจ๋ API์์ ์ฌ์ฉํ๋ Raw Query์์ visibility Column์ ๋ํ ๋ด์ฉ์ ํ๋์ฉ ์์ ํด์ผ๋ฉ๋๋ค. ๋จ์ํ ์กฐํ๋ฅผ ํ๋ API ๋ฟ๋ง ์๋๋ผ ์์ฑ, ์์ , ์ญ์ ์ ํด๋นํ๋ ๋ชจ๋ API๋ฅผ ํด๋นํ๋ ์ฟผ๋ฆฌ์ ๋ง๊ฒ ์์ ํด์ผํ๋ ๋ถ์์ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.visibility Column ๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.ํ์ง๋ง, ์ด๋ฌํ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ ORM๋ ๋ง๋ฅ์ ์๋๋๋ค.
JOIN๊ณผ UNION ์ฐ์ฐ์๋ฅผ ๋์์ ์ฌ์ฉํ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๊ฒฝ์ฐ, ORM์ผ๋ก ๊ตฌํํ๊ธฐ ์ํด SQL ๋ณด๋ค๋ ORM์ ๋ ๊น๊ฒ ์ดํดํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๊ณ , ์ด๋ก์ธํด ์์ธ๊ณผ ๊ฒฐ๊ณผ๊ฐ ๋ค์งํ ์ํฉ์ด ๋ฐ์ํ ์๋ ์์ต๋๋ค.
์ด ๋ฟ๋ง ์๋๋ผ, ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฑฐ๋, ORM์ SQL๋ก ๋ณํํด์ฃผ๋ ์๊ฐ ์กฐ์ฐจ ์๊น์ด ๊ทนํ์ ์ฑ๋ฅ์ ์๊ตฌํ๋ ์ฟผ๋ฆฌ๊ฐ ํ์ํ ์ํฉ์์๋ Raw Query๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์ฑ ์ข์ ์ ์๋ต๋๋ค.