데이터베이스에서 상위 테이블과 하위 테이블이란?
데이터베이스에서 상위 테이블이란 무엇이고 하위 테이블이란 무엇인지 알고 싶습니다.제가 어떻게 작동하는지 이해할 수 있도록 예를 보여주시겠습니까?
감사해요.
자식 테이블과 부모 테이블은 일반 데이터베이스 테이블일 뿐이지만 부모-자녀 관계에 의해 설명되는 방식으로 연결됩니다.
일반적으로 한 테이블의 값이 다른 테이블의 값을 참조하는 위치(일반적으로 다른 테이블의 기본 키)를 지정하는 데 사용됩니다.
예를 들어, 뉴스 기사를 상상해 보세요.이것은 다음과 같은 테이블로 나타낼 수 있습니다.articles
에 대한 필드가 있습니다.id
,headline
,body
,published_date
그리고.author
. 하지만 이름을 넣는 대신에author
필드, 대신 사용자의 ID 값을 별도의 테이블에 넣을 수 있습니다.authors
—다음과 같은 저자에 대한 정보를 가지고 있는id
,name
,그리고.email
.
따라서 작성자의 이름을 업데이트해야 하는 경우에는 해당 작업만 수행하면 됩니다.authors
(부모) 테이블; 왜냐하면articles
(자녀) 테이블에는 해당 ID만 포함되어 있습니다.author
기록.
이것이 당신이 더 잘 이해하는데 도움이 되기를 바랍니다.
룩업 테이블이 사용되는 경우와 같이 부모 자식 관계처럼 보이지만 그렇지 않은 관계를 가질 수 있습니다.진정한 부모-자녀 관계에서 기록은 일반적으로 그들 자신의 것이 아니라는 점입니다. 즉, 기록은 부모에게 상세한 기록이며 부모-자녀 관계에서는 일반적으로 기록이 잘 보존되지 않습니다.한 사람이 DMV 데이터베이스에 여러 대의 자동차를 소유할 수 있지만, 소유자 테이블에 부모 기록이 없는 자동차 테이블의 기록을 원하지는 않을 것입니다. 이는 거의 쓸모없는 데이터가 될 것입니다.
반면, 룩업 테이블을 사용하여 코드를 보다 의미 있는 것으로 확장하거나 데이터 입력을 허용 가능한 값으로 제한하는 경우, 룩업 테이블이 삭제되어도 "자녀" 레코드는 여전히 유용할 수 있습니다.더 이상 '남성'이나 '여성'으로 확대할 수 있는 조회표가 없더라도 저는 여전히 'M'이나 'F'로 성별 정보를 가질 수 있습니다.
상위 - 다른 테이블과의 관계에서 "하나"(/1) 쪽에 있는 엔터티
자식 - 다른 테이블과의 관계에서 "많은"(/N/*) 쪽에 있는 엔티티
하위 테이블은 다른 테이블을 가리키는 하나 이상의 외부 키를 가진 테이블인 경향이 있습니다.자식 테이블 자체도 다른 테이블의 상위 테이블이 될 수 있습니다.
이러한 용어는 데이터베이스 관계에서 사용됩니다.
예를 들어, 당신은 두개의 테이블을 가지고 있습니다.
1. 매니패스트
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| manifast_id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| description | text | NO | | NULL | |
| title | text | NO | | NULL | |
+-------------+------------------+------+-----+---------+----------------+
- day_sequence
+-----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+------------------+------+-----+---------+----------------+ | day_sequence_id | int(11) unsigned | NO | PRI | NULL | auto_increment | | day_number | int(11) | NO | | NULL | | | day_start | int(11) | NO | | NULL | | | manifast_id | int(11) | NO | | NULL | | +-----------------+------------------+------+-----+---------+----------------+
두 테이블을 연결하려면 다음 형식의 명령어를 사용해야 합니다.
> ALTER TABLE child_table_name ADD FOREIGN KEY (P_ID) REFERENCES
> parent_table_name (P_ID)
그렇게 됩니다.
> ALTER TABLE day_sequence ADD CONSTRAINT fk_manifast FOREIGN KEY
> (manifast_Id) REFERENCES manifast(manifast_Id);
요약하면, 자식 테이블은 외부 키가 있고 다른 테이블과 연결된 테이블입니다.상위 테이블에 외부 키가 없으며 다른 테이블에 연결되어 있습니다.[ 참고 : 이 앤스는 두 개의 테이블을 연결하기 위한 것일 뿐입니다 ]
언급URL : https://stackoverflow.com/questions/7880921/what-is-a-parent-table-and-a-child-table-in-database
'programing' 카테고리의 다른 글
Angular Cli Webpack, 외부 js 파일 추가 또는 번들 방법? (0) | 2023.09.27 |
---|---|
자바스크립트에서 객체를 만드는 데 가장 좋은 방법은 무엇입니까?객체 속성 앞에 var가 필요합니까? (0) | 2023.09.27 |
Mysql에서 이메일 주소 확인 (0) | 2023.09.27 |
%를(를) 사용할 수 없음:자르기Remainer를 대신 사용합니다."는 다음을 의미합니까? (0) | 2023.09.27 |
MySQL 쿼리에서 SELECT로 INSERT INTO를 수행할 때 정적 값을 추가하는 방법은 무엇입니까? (0) | 2023.09.27 |