ํ์ฌ ์ํฉ
ํ์ฌ File ํ ์ด๋ธ์ User, Portfolio, Item 3๊ฐ์ ํ ์ด๋ธ์ด ์ฐธ์กฐํ๊ณ ์์ต๋๋ค.
User์ Portfolio๋ File๊ณผ 1๋1 ๊ด๊ณ์ด๊ธฐ ๋๋ฌธ์ fk๋ฅผ ๊ฐ์์ ํ
์ด๋ธ์ ๋์ง๋ง, Item์ ๊ฒฝ์ฐ 1๋๋ค ๊ด๊ณ์ด๊ธฐ ๋๋ฌธ์ fk๋ฅผ File ํ
์ด๋ธ์์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ์ ๋ฌธ์ ์ ์ ํ
์ด๋ธ์ ์ ํฉ์ฑ์ ํด์น๊ณ , item_id๊ฐ์ ๊ฐ์ง์ง ์๋ User ์ Portfolio ํ
์ด๋ธ์์๋ item_id ์นผ๋ผ ๊ฐ์ ๋ถํ์ํ๊ฒ ๊ฐ์ ธ null ๊ฐ์ด ๋ฐ์ํ๋ค๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํด๊ฒฐ๋ฐฉ์
์ด์ ๊ฒฝ์ฐ 2๊ฐ์ง์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆด ์ ์์ต๋๋ค.
- ItemFile ํ ์ด๋ธ์ ๋ฐ๋ก ๋ง๋ค์ด์ ๊ธฐ์กด ํ์ผ๊ณผ ์ด๋ฅผ ๊ตฌ๋ถํ๋ค.
- File ํ ์ด๋ธ์์ Item_Id๊ฐ ์๋ OwnerId ๊ฐ์ ๋์ด ์ด ๊ณณ์ item_id, user_id, portfolio_id ๊ฐ์ ๋ชจ๋ ๋ด๊ณ , Filtype ์นผ๋ผ์ Enum ๊ฐ์ผ๋ก ์ด๋ค ํ ์ด๋ธ์ id ๊ฐ์ธ์ง๋ฅผ ๊ตฌ๋ถํ๋ค.
๋ฉํ ๋ง ๊ฒฐ๊ณผ 2๋ฒ ๋ฐฉ๋ฒ์ด ๋ ๋ซ๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค. 1๋ฒ ๊ฐ์ ๊ฒฝ์ฐ ๋ถํ์ํ๊ฒ ํ ์ด๋ธ์ด ํ ๊ฐ ๋ ์์ฑ๋๋ค๋ ๋ฌธ์ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฒฐ๋ก
2๋ฒ ๋ฐฉํฅ์ผ๋ก ๋ฆฌํฉํ ๋งํ๊ธฐ๋ก ํ๋ค!
์ง๋ ํ๋ก์ ํธ์์๋ ํ์ผ์ 1:1๋ก๋ง ์จ์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์๋๋ฐ 1:N์ผ๋ก ๊ตฌํํ๋ค๋ณด๋ ์ด๋ ๊ฒ ์ธ๋ํค๊ฐ์ด ๋ค์ด๊ฐ๊ธฐ๋ ํ๋๋ณด๋ค.
๊ทธ๋์ ๋ ์ 2๋ฒ ๋ฐฉ๋ฒ(owner_id๋ก ๋ญ๋ฑ๊ทธ๋ฆฌ๊ณ fileType์ผ๋ก ๋ถ๋ฅํ๋) ๋ค๋ฅธ ํ ์ด๋ธ ๋ฆฌํฉํ ๋ง์๋ ์ฐ๊ธฐ ์ข์๋ณด์ธ๋ค. Tag ๊ด๋ จ ์ํฐํฐ๋ String๋ง ์๋์์ผ๋ฉด ์ ๋ฐฉ์๋๋ก ๋ฆฌํฉํ ๋งํ์ ๊ฒ ๊ฐ๋ค.
'๐ฅ ํ๋ก์ ํธ > ์จ๋ฉ๋ฉ์ดํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฌ] MySQL Data truncated for column (0) | 2023.10.04 |
---|---|
[Github Actions] PR open ์ ๋ผ๋ฒจ ์ถ๊ฐํ๊ณ closed ์ ์ญ์ ํ๊ธฐ (0) | 2023.08.15 |
[์ง์] yml ํ๊ฒฝ๋ณ์ env์ ๋ฑ๋กํ๊ธฐ (0) | 2023.08.13 |
[์ค๊ณ] Tag ํ ์ด๋ธ ๋ฆฌํฉํ ๋ง ๋ฐ Tag ๊ฒ์ ๋ฐฉ์ (0) | 2023.08.13 |
[์ค๋ฅ] @AuthUser์์ User ๊ฐ์ฒด๋ฅผ ๋ฐ์์ค์ง ๋ชปํ๋ ์ค๋ฅ (0) | 2023.08.13 |
๋๊ธ