M:N연관관계 πŸ‘Ž

κ°€μ–ΈΒ·2024λ…„ 7μ›” 23일
post-thumbnail

연관관계

1λŒ€1

  • μ˜ˆμ‹œ? μ†Œκ°œνŒ…, ν•œ μœ μ €λ‹Ή ν•˜λ‚˜μ˜ μœ„μ‹œλ¦¬μŠ€νŠΈ, 신뢄증-μ‚¬λžŒ, νšŒμ›-λΉ„λ°€λ²ˆν˜Έ

1λŒ€λ‹€

  • μ˜ˆμ‹œ? νŒ¬λ―ΈνŒ…, μ§€λ„κ΅μˆ˜λ‹˜μ€ ν•œ λͺ…-학생은 μ—¬λŸ¬λͺ…, μ‚¬λžŒ-μ‹ μš©μΉ΄λ“œ, μœ μ €-리뷰
    , ν˜Έν…”-ν˜Έν…”λ°©, νŒ€-학생, ν•˜λ‚˜μ˜ κ°€κ²Œ-μ—¬λŸ¬κ°œμ˜ 리뷰

❓ fkκ°€ μžˆλŠ” νŒ€μ΄ 1? μ—†λŠ” νŒ€μ΄ 1?

πŸ…°οΈ μ—†λŠ” νŒ€μ΄ 1
μ΄μœ λŠ”β“

μœ„ ν…Œμ΄λΈ”μ—μ„œ ν˜Έν…”μ€ μ—¬λŸ¬κ°œμ˜ 방을 κ°€μ§ˆ 수 μžˆμœΌλ―€λ‘œ ν˜Έν…”: 1이고, λ°©:N이닀.
λ§Œμ•½ ν˜Έν…”μ— 방에 λŒ€ν•œ fkκ°€ μ‘΄μž¬ν•œλ‹€λ©΄ 데이터가 μ€‘λ³΅λ˜λŠ” 상황이 λ°œμƒν•˜κΈ° λ•Œλ¬Έ!
λ°© ν…Œμ΄λΈ”μ— 데이터가 μΆ”κ°€λœλ‹€λ©΄, λ°© ν…Œμ΄λΈ”μ˜ fk에 ν˜Έν…”μ˜ idκ°€ μ €μž₯됨

λ‹€λŒ€λ‹€

  • μ˜ˆμ‹œ? κ³ΌνŒ…, μˆ˜μ—…-학생

λ‹€λŒ€λ‹€ ν…Œμ΄λΈ” μ˜ˆμ‹œ

<κ³Όλͺ©>
JAVA-홍길동, 김ꡬ리
DB-김가리
<학생>
홍길동-JAVA
김가리-DB
김ꡬ리-JAVA

초기 ν…Œμ΄λΈ” μ„ΈνŒ…

학생이 κ³Όλͺ©μ„ μˆ˜κ°•ν•˜λŠ” κ±°λ‹ˆκΉ 학생 ν…Œμ΄λΈ”μ— FKλ₯Ό μΆ”κ°€ν•˜μž! 1οΈβƒ£ν…Œμ΄λΈ”

μ˜€μž‰ ?! 그럼 같은 μ›λ¦¬λ‘œ κ³Όλͺ© ν…Œμ΄λΈ”μ— FKλ₯Ό μΆ”κ°€ν•˜λŠ” 것도 κ°€λŠ₯ν•˜μž–μ•„! 2οΈβƒ£ν…Œμ΄λΈ”

그럼 두 ν…Œμ΄λΈ”μ— λͺ¨λ‘ μΆ”κ°€ν•˜μž! 3οΈβƒ£ν…Œμ΄λΈ”

μœ„ ν…Œμ΄λΈ”λ“€μ˜ λ¬Έμ œμ μ€ 뭘까?

  • πŸ˜“ 1οΈβƒ£λ²ˆ, 2οΈβƒ£λ²ˆ, 3οΈβƒ£λ²ˆ ν…Œμ΄λΈ”
    λ§Œμ•½ μˆ˜κ°•μ΄ 끝났닀면,학생 ν…Œμ΄λΈ”μ—μ„œ 학생을 μ•„μ˜ˆ μ‚­μ œν•  수 μ—†μœΌλ‹ˆκΉ 학생/κ³Όλͺ© ν…Œμ΄λΈ”μ—μ„œ fkλ₯Ό μ œκ±°ν•΄μ•Όν•œλ‹€. ν•˜μ§€λ§Œ, fkλ₯Ό μ‚­μ œν•˜κΈ° μœ„ν•΄μ„œλŠ” μ—°κ΄€λœ κ³Όλͺ© ν…Œμ΄λΈ”μ˜ 행을 μ‚­μ œν•΄μ•Όν•œλ‹€λŠ” λΆˆνŽΈν•¨μ΄ μ‘΄μž¬ν•œλ‹€!

  • πŸ˜“ 1οΈβƒ£λ²ˆ ν…Œμ΄λΈ”
    νŠΉμ • κ³Όλͺ©μ„ μˆ˜κ°•ν•œ μ‚¬λžŒμ˜ 이름을 μ°Ύκ³  싢은 경우,
    보톡 fkλ₯Ό λ“€κ³ κ°€μ„œ pkλ₯Ό μ°Ύμ§€λ§Œ, μœ„ ν…Œμ΄λΈ”μ—μ„œλŠ” pkλ₯Ό 보고 fkλ₯Ό μ°ΎλŠ” 상황이 λ°œμƒν•  수 μžˆλ‹€..

  • κ³Όλͺ© ν…Œμ΄λΈ”μ„ μ‘°νšŒν•˜κ³ , 학생 ν…Œμ΄λΈ”μ„ μ‘°νšŒν•΄μ•Ό ν•˜λ―€λ‘œ λΆˆν•„μš”ν•œ μ‘°νšŒκ°€ λ°œμƒν•œλ‹€!
  • πŸ˜“ 2οΈβƒ£λ²ˆ, 3οΈβƒ£λ²ˆ ν…Œμ΄λΈ”
    μ—¬λŸ¬ λͺ…이 ν•œ κ³Όλͺ©μ„ μˆ˜κ°•ν•  경우, κ³Όλͺ© ν…Œμ΄λΈ”μ— 리슀트 ν˜•νƒœλ‘œ μ»¬λŸΌμ— λ„£μ–΄μ•Ό ν•˜κ³ , 리슀트 ν˜•νƒœλ₯Ό ν’€μ–΄μ„œ ν…Œμ΄λΈ”μ— μ €μž₯ν•œλ‹€λ©΄ 데이터 쀑볡이 λ°œμƒν•œλ‹€.

λ‹€μ‹œ λ§ν•΄μ„œ, M:N을 μ“°λ©΄ μ•ˆλ˜λŠ” μ΄μœ λŠ”?

  • ⭐️ μ†μ„±μ˜ μ›μžμ„±μ„ μœ„λ°° ⭐️: ν•˜λ‚˜μ˜ μ»¬λŸΌμ— 리슀트λ₯Ό 넣을 수 μ—†μŒ
    (ν•΄κ²°: RDB, noSQLμ‚¬μš© cf) RDBλ₯Ό μ™œμ“°λŠ”μ§€? λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ μ›ν•˜λŠ” 데이터λ₯Ό κ°€μ Έμ˜¬ 수 있음 우리의 λ‡Œκ°€ κ΄€κ³„ν˜• 데이터듀을 찾을 수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ 있기 λ•Œλ¬Έ!)
  • ⭐️ 이쀑 쑰회 ⭐️: νŠΉμ • κ³Όλͺ©μ„ μˆ˜κ°•ν•œ 학생 쑰회 및 νŠΉμ • 학생이 λ“£λŠ” κ³Όλͺ©μ„ μ‘°νšŒν•  λ•Œ λΆˆν•„μš”ν•œ μ‘°νšŒκ°€ λ°œμƒ!
  • ⭐️ μœ μ§€λ³΄μˆ˜ 및 ν™•μž₯μ„± μ €ν•˜ ⭐️: λ°μ΄ν„°μ˜ μΆ”κ°€ 및 변경이 일어날 μ‹œ 데이터λ₯Ό λͺ¨λ‘ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€.
  • ⭐️ 데이터 μ€‘λ³΅μ˜ 문제 ⭐️: pk의 쀑볡이 λ°œμƒν•˜μ—¬ μ°Έμ‘° 무결성이 ν›Όμ†λœλ‹€.

ν•΄κ²°μ±…

μœ„μ™€ 같은 λ¬Έμ œλ“€μ„ μ–΄λ–»κ²Œ ν•΄κ²°ν•˜λ©΄ μ’‹μ„κΉŒ?
두 ν…Œμ΄λΈ” 사이에 μ˜ˆμ•½ ν…Œμ΄λΈ”μ„ μƒˆλ‘œ λ§Œλ“€μž!

이상적인 ν…Œμ΄λΈ”

βœ… μˆ˜κ°• ν…Œμ΄λΈ”μ„ λ”°λ‘œ 두어 ν…Œμ΄λΈ” μˆ˜μ • μ‚­μ œ, μΆ”κ°€ μ‹œ λ°œμƒν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•  수 있음

profile
@gari_guri

4개의 λŒ“κΈ€

comment-user-thumbnail
2024λ…„ 7μ›” 23일

κ·Όλ°μš” 가언씨 μƒκ°ν•΄λ³΄λ‹ˆκΉŒ μ‚¬λžŒμ΄λž‘ μ‹ μš©μΉ΄λ“œλŠ” λ‹€λŒ€λ‹€ κ΄€κ³„κ°™μ•„μš” !!!
μ‚¬λžŒλ„ μ—¬λŸ¬ μ‹ μš©μΉ΄λ“œλ₯Ό μ‚¬μš©ν•  수 있고 μ‹ μš©μΉ΄λ“œλ„ λ§ˆμ°¬κ°€μ§€μž–μ•„μš”.. μš°λ¦¬κ°€ λ‹€λŒ€λ‹€ 예둜 직원, μΉ΄λ“œ 이야기λ₯Ό ν–ˆλŠ”λ° 그게 κ·Έκ±° κ°™μ•„μš” 🀨 λ‹΅λ³€λΆ€νƒλ“œλ €μš©

1개의 λ‹΅κΈ€