๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ (118)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[DB] ํ‚ค, ๊ธฐ๋ณธ ํ‚ค(Primary Key, PK)์™€ ์™ธ๋ž˜ ํ‚ค(Foreign Key, FK)

Key ์Šˆํผํ‚ค super key : ํ•ด๋‹น ๊ฐœ์ฒด๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” attribute์˜ ''์ง‘ํ•ฉ''. [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ, ์ด๋ฆ„] ํ›„๋ณดํ‚ค candidate key : ์Šˆํผํ‚ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ. ์Šˆํผํ‚ค์—์„œ ๊ตฐ๋”๋”๊ธฐ๋ฅผ ์ œ๊ฑฐํ•œ ๊ฒƒ. (์ˆ˜ํ•™์  ์ •์˜) ''๋ชจ๋“  ๋‹ค๋ฅธ attribute๋“ค์„ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” attribute'' ์Šˆํผํ‚ค์˜ ๊ตฌ์„ฑ attribute ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ œ๊ฑฐํ•˜๋ฉด ์Šˆํผํ‚ค๊ฐ€ ์•„๋‹Œ ๊ฒƒ. ํ›„๋ณดํ‚ค ์ค‘์— ํ•˜๋‚˜๊ฐ€ PK๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ, ์ด๋ฆ„]์—์„œ [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ]๊ฐ€ ํ›„๋ณดํ‚ค์— ํ•ด๋‹นํ•œ๋‹ค. ๊ธฐ๋ณธํ‚ค primary key : ์—ฌ๋Ÿฌ ํ›„๋ณดํ‚ค ์ค‘ ๋Œ€ํ‘œ์ ์ธ ํ‚ค ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋กœ ๋งŒ๋“ ..

[DB] 1:1, 1:N, N:M ๊ด€๊ณ„

[DB] 1:1, 1:N, N:M ๊ด€๊ณ„ ์ด ๊ธ€์„ ๋ณด๊ณ  ์š”์•ฝ ์ •๋ฆฌํ•จ. ์›๋ณธ์ด ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ 1:N๊ด€๊ณ„๋ฅผ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ข€ ์ฐพ์•„๋ณด์•˜๋‹คใ…  ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ '๊ด€๊ณ„' ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—”ํ‹ฐํ‹ฐ๋ผ๋ฆฌ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„ํ˜•์ด๋ผ๋Š” ๋ง์ด ๋ถ™์€ ๊ฒƒ์ด๋‹ค. ์—”ํ‹ฐํ‹ฐ Entity : DB์— ํ‘œํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์œ ํ˜•/๋ฌดํ˜•์˜ ๊ฐ์ฒด๋กœ์„œ ์„œ๋กœ ๊ตฌ๋ณ„๋˜๋Š” ๊ฒƒ. ๊ด€๊ณ„ Relationship : ๋‘ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์„œ๋กœ ๊ด€๋ จ์ด ์žˆ์„ ๋•Œ. 1:1, 1:N, N:M ๊ด€๊ณ„๋ฅผ ๋งบ์„ ์ˆ˜ ์žˆ๋‹ค. 1:1 ๊ด€๊ณ„ ์—”ํ‹ฐํ‹ฐ A๊ฐ€ ์ƒ๋Œ€ ์—”ํ‹ฐํ‹ฐ B์™€ ๋‹จ ํ•˜๋‚˜์˜ ๊ด€๊ณ„๋งŒ ๊ฐ–๋Š” ๊ฒƒ. (์—”ํ‹ฐํ‹ฐB๋„ ์—”ํ‹ฐํ‹ฐA์™€ ๋‹จ ํ•˜๋‚˜์˜ ๊ด€๊ณ„๋งŒ ๊ฐ–๋Š”๋‹ค) ex) ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ์˜ ๊ฒฐํ˜ผ ์ œ๋„(์ผ๋ถ€์ผ์ฒ˜์ œ) 1:N ๊ด€๊ณ„ ์—”ํ‹ฐํ‹ฐ A๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒ๋Œ€ ์—”..

[Spring Data JDBC, JPA] @Embeded๋ž€?, @Embeded ์‚ฌ์šฉํ•˜๊ธฐ

@Embeded ์—ฐ๊ด€ ์žˆ๋Š” ์ปฌ๋Ÿผ๋“ค์„ ๋ฌถ๋˜ ํ…Œ์ด๋ธ”์„ ์ƒˆ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ , @Embeded๋ฅผ ์‚ฌ์šฉํ•ด ๋งˆ์น˜ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค!! [JPA] @Embeded, ์ž„๋ฒ ๋””๋“œ ํƒ€์ž… https://velog.io/@conatuseus/JPA-%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C-%ED%83%80%EC%9E%85embedded-type-8ak3ygq8wo ์— ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์–ด ์š”์•ฝ ์ •๋ฆฌ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ™‡‍โ™€๏ธ JPA์—์„œ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…(๋ณตํ•ฉ ๊ฐ’ ํƒ€์ž…)์ด๋ž€ ์ƒˆ๋กœ์šด ๊ฐ’ ํƒ€์ž…์„ ์ง์ ‘ ์ •์˜ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ž„๋ฒ ๋””๋“œ ํƒ€์ž… ์—ญ์‹œ int, String์ฒ˜๋Ÿผ ๊ฐ’ ํƒ€์ž…์ด๋‹ค. โ“ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…์„ ์“ฐ๋Š” ์ด์œ  โ— ์ƒ์„ธํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ด€๋ จ ์žˆ๋Š” ํƒ€์ž…์œผ๋กœ ๋ฌถ์–ด ๊ฐ์ฒด์ง€ํ–ฅ์ ์ด๊ณ  ์‘์ง‘๋ ฅ ๋†’๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„..