database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41583 게시물 읽기
No. 41583
모델링 할 때 테이블간 양방향 참조를 하기도 하나요?
작성자
조동건(ceastgun)
작성일
2018-06-19 10:06ⓒ
2018-06-19 10:14ⓜ
조회수
5,267

A 테이블이 B 테이블을 참조하고 

B테이블이 A 테이블을 참조하는 방식은 안 좋다고 생각해왔는데 

그렇게 써도 괜찮나? 라는 의문이 들었습니다.

이렇게도 많이 쓰나요?

 

구체적으로 질문드리면 

A 테이블의 PK인 A_ID를 B 테이블이 FK로 참조하고 있고 

B 테이블의 PK인 B_ID를 A 테이블이 FK로 참조하고 있지만 

null을 넣을 수 있어서 오류가 발생하지는 않죠.

A 테이블에 데이터를 모두 넣은 후에 

B 테이블의 데이터를 넣고 

A 테이블의 FK를 업데이트 하는 방식으로 데이터를 넣게 됩니다.

 

 

 

이 글에 대한 댓글이 총 4건 있습니다.

 해당 로직으로 봤을때

B테이블은 A테이블의 수직분할로 보이네요.

보통 이럴경우

B테이블PK를 A테이블과 같은 A_ID로 설정합니다.

A테이블에 데이터를 모두 넣은 후 

A_ID를 가져다가 B테이블에 데이터를 넣고 끝

박인호(paerae)님이 2018-06-19 10:51에 작성한 댓글입니다.

박인호님 답변 감사합니다.

제 설명이 부족한 부분이 있었는데

A, B테이블은 [1:n]의 관계입니다.

A테이블 레코드 하나당 B테이블 레코드가 여러개인데 

B테이블의 여러 레코드 중 기본 레코드를 설정하려고 

A테이블에 B_ID 컬럼이 존재하는 경우입니다.

 

저라면 이렇게 모델링 하지 않았고

이런 방식의 모델링이 마음에 안드는데 

그게 취향의 문제인지 이렇게 모델링 하는 것이 잘못된 것인지 

헷갈리는 부분이 있어서 질문 드립니다.

 

 

조동건(ceastgun)님이 2018-06-19 13:28에 작성한 댓글입니다.
이 댓글은 2018-06-19 13:29에 마지막으로 수정되었습니다.

 보통 순환참조 모델링은 잘 사용하지 않죠

저는 자식중 대표(기본)를 설정할려면 속성을 추가해 구분합니다.

박인호(paerae)님이 2018-06-19 14:28에 작성한 댓글입니다.

 박인호님 답변 감사합니다.

조동건(ceastgun)님이 2018-06-19 14:42에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41586기본 데이터베이스(스키마)를 설정하는 SQL문이 있나요?
조동건
2018-06-25
4339
41585조인관련해서 질문 드립니다 ㅠ [2]
김영욱
2018-06-21
4417
41584shell에서 sqlplus 접속시.. [1]
참이슬
2018-06-21
4516
41583모델링 할 때 테이블간 양방향 참조를 하기도 하나요? [4]
조동건
2018-06-19
5267
4158230분단위로 가중치를 주고 싶은데 어떤쿼리를 짜야할까요? [3]
aladdin
2018-06-19
4575
41581안녕하십니까. 오라클 샘플 데이터 생성 관련하여, 글을 올립니다.
브라움
2018-06-18
4354
41579조건에 따라 쿼리 분기시키기 [5]
PPP
2018-06-14
4940
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다