PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2022/12/17 11:30:12
Name 오렌지 태양 아래
File #1 제목_없음.png (11.6 KB), Download : 106
Subject [질문] DB 설계 연습중인데 뇌정지가 와서 질문드립니다


요즘 DB를 배워볼까 해서 오라클도 배우고

지금은 설계 연습을 하고 있는데

제 능지가 처참함을 느끼고 있습....크크

뇌정지가 와서...

제가 도시락 관련 컨셉으로 DB를 설계를 연습하고 있는데요

각 도시락에 들어갈 메뉴를 밥 국 및 반찬 조합을 구현하고 싶은데 지금 저기서 계속 선 그었다 지웠다 반복하고 있습니다

일단 밥,국은 각 도시락에 1개씩 들어간다고 가정하고 1:N으로 묶었구요

문제는 반찬입니다...

1개가 들어갈수도, 2개가 들어갈 수도, 아무튼 N개를 취해서 조합을 만들어 PK부여하고 메뉴구성에 넣고 싶은데

지금 제가 첨부한 사진이 맞나요???

뭔가 틀린 거 같은 느낌은 강하게 드는데

정답을 못찾겠습니다....

어떻게 설계하면 될까요??

고수님들 답변 부탁드립니다 ㅠㅠㅠ

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
프즈히
22/12/17 12:35
수정 아이콘
저도 db 전문가는 아닌데 제 생각에는 반찬구성 테이블에 반찬구성코드가 유니크 하지 않으면 될 것 같습니다.

반찬구성테이블
컬럼 : 반찬구성코드, 반찬 코드

데이터 예

코드1, 김치
코드1, 나물
코드2, 소시지
코드2, 김치
코드2, 나믈
코드3, 나물

메뉴구성테이블
메뉴구성코드1(유니크), 밥1,국1, 반찬구성코드2

이렇게 해 두면
메뉴1을 불러오면 밥1, 국1, 소시지, 김치, 나물 이 조합된 메뉴가 되죠
오렌지 태양 아래
22/12/17 12:43
수정 아이콘
그러면 지금 제가 올린 스크린샷 설계에서
'반찬구성테이블'의 반찬구성 테이블을(PK)로 하지 않고 PK가 아닌 일반 컬럼(not unique)으로 만든 다음

메뉴구성테이블에서 FK로 받아오면 된다는 건가요??

하... 능지가 처참해서 죄송합니다 ㅠㅠㅠ
프즈히
22/12/17 13:08
수정 아이콘
네. pk가 없을 수는 없으니 그냥 1 2 3 4 5 번호 컬럼이라도 다른 컬럼을 추가하긴 해야겠네요.
자발개보초
22/12/17 13:31
수정 아이콘
N대M 매핑 테이블 구성하는법을 찾아서 공부하시면 됩니다.
저는 밥이랑 국(1 대 N)도 결국 N 대 M의 subset이니
특별한 이유가 없다면 도시락 - 반찬 - 매핑테이블 3개로 구성 할거 같네요.

[도시락]
| id | 이름 |
| --------------------|
| 1 | 소불고기도시락1 |
| 2 | 돼지불고기도시락1 |


[반찬]
| id | 이름 | 종류 |
| -- | --------------- | ----- |
| 1 | 백미밥 | 밥 |
| 2 | 잡곡밥 | 밥 |
| 3 | 미역국 | 국 |
| 4 | 콩나물국 | 국 |
| 5 | 소불고기 | 반찬 |
| 6 | 돼지불고기 | 반찬 |
| 7 | 김치 | 반찬 |


[매핑테이블]
| 도시락_id | 반찬_id |
| --------------------- |
| 1 | 1 |
| 1 | 3 |
| 1 | 5 |
| 1 | 7 |
| 2 | 2 |
| 2 | 4 |
| 2 | 6 |
| 2 | 7 |

SQL 에서는 컬럼 2개로 Composition Key를 구성해서 PK 설정 할 수 있으니 (장단이 있습니다) 알아 두시면 좋습니다.
오렌지 태양 아래
22/12/17 14:57
수정 아이콘
도시락 테이블에서 도시락id를,
반찬테이블에서 반찬id를

매핑테이블에 FK로 가져온 다음
[도시락ID,반찬ID]를 묶어서 PK로 지정하면 된다는 말씀이시죠???
오렌지 태양 아래
22/12/17 16:52
수정 아이콘
선생님 감사합니다.

답변 달아주신거 곰곰히 생각하다가 유레카를 외쳤습니다.

답변달아주신분들 다 같은 말 하시는것 같은데

테이블 예시까지 들어주셔서 이해가 가능했던거 같습니다 ㅠㅠ
22/12/17 13:35
수정 아이콘
정석적으로 가려면 테이블을 하나 더 만들어서 반찬구성코드, 반찬코드를 composite key로 묶어 PK로 가진 관계 테이블을 만들면 됩니다.
물론 그러면 당장 반찬구성테이블에는 반찬구성코드만 덜렁 있는 모습이 되어서 이상해보이겠지만, 실제로 만들때는 잡다한 메타정보(이름, 메모, 생성시간 등)가 들어갈 가능성이 높구요.
오렌지 태양 아래
22/12/17 14:59
수정 아이콘
세인트님 말씀주신게 결국 바로 위의 자발개보초님의 말과 같은 말씀하시는거 같은데
맞게 이해한건가요??
22/12/17 18:21
수정 아이콘
아 저는 오렌지님이 질문한 부분을 해결하기 위해 반찬과 반찬구성테이블만 연결하는 테이블을 제안한거고,
자발개보초님은 전반적으로 수정 제안해주신겁니다~
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
167870 [질문] 미국계정 PS5 에서 한국어 위쳐 3 하는 방법 질문 [6] vitaminwater8043 22/12/17 8043
167869 [질문] 스팀과 플레이스토어 관련 혜택있는 신용카드 있을까요? [2] Winter_SkaDi6414 22/12/17 6414
167868 [질문] DB 설계 연습중인데 뇌정지가 와서 질문드립니다 [9] 오렌지 태양 아래6941 22/12/17 6941
167867 [질문] 부산 여행 접대 코스? 추천 좀 부탁 드려요. (스타벅스 1만원). [13] 실버벨11732 22/12/17 11732
167866 [질문] 생활의고수 피잘러님들 난방비 절약 꿀팁 부탁드립니다. [7] Liberal7209 22/12/17 7209
167865 [질문] 파이썬 코드 질문입니다. 죄송해요 [2] 월터화이트6548 22/12/16 6548
167864 [질문] 겨울철 등산아우터 범용성 높은 제품으로 추천부탁드립니다. [5] 이민들레7284 22/12/16 7284
167863 [질문] 부산여행관련 질문입니다.. [12] Kubernetes8903 22/12/16 8903
167862 [삭제예정] 와이프가 바람을 폈습니다 [37] 삭제됨12652 22/12/16 12652
167861 [질문] 한글 덮어쓰기 복구 방법 없나요? [3] 아이시스 8.010726 22/12/16 10726
167860 [삭제예정] 전세 묵시적 계약갱신의 횟수 관련 [2] 삭제됨6766 22/12/16 6766
167859 [질문] fm2023 갓겜입니까?? [11] kogang20019961 22/12/16 9961
167858 [질문] 돈들여서 영어 회화 배우기 좋은 방법은 뭐가 있을까요? [11] 알렉스터너10173 22/12/16 10173
167857 [질문] 앱스토어/구글플레이에 올라온 콘솔게임 정리해놓은 사이트가 있을까요? 고오스7501 22/12/16 7501
167856 [질문] 파이썬으로 몬티홀 문제 시뮬레이션 해보고 있는데 조언 부탁드립니다 [26] NSpire CX II9652 22/12/16 9652
167855 [질문] PC에서 쓸만한 게임 패드 추천 부탁 드립니다 [14] 대출 30년10651 22/12/16 10651
167854 [질문] 영어 쉐도잉을 하기에 적합한 외국 드라마나 애니메이션은 어떤 것이 좋을지요..? [8] nexon9377 22/12/16 9377
167853 [질문] [게임] 위처 1, 2 스토리는 어떻게 알면 좋을까요? [10] 류지나10495 22/12/15 10495
167852 [질문] 아르헨티나 vs 프랑스 .. 어디 응원하시나요? [52] 마르키아르8885 22/12/15 8885
167851 [질문] 쇼파 배드를 구입할까 하는데 물건 고르는 팁좀 주실 수 있을까요? [10] Beyond9347 22/12/15 9347
167850 [질문] 노래를 찾습니다 [3] 형리7354 22/12/15 7354
167849 [질문] 맥 리얼포스 블루투스 연결 불가 문제 질문입니다. [1] 7652 22/12/15 7652
167848 [질문] 아버지께서 핸드폰 매장에서 당하신것 같습니다. [9] 사다드9599 22/12/15 9599
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로