programing

데이터베이스에서 상위 테이블과 하위 테이블이란?

newsource 2023. 9. 27. 17:58

데이터베이스에서 상위 테이블과 하위 테이블이란?

데이터베이스에서 상위 테이블이란 무엇이고 하위 테이블이란 무엇인지 알고 싶습니다.제가 어떻게 작동하는지 이해할 수 있도록 예를 보여주시겠습니까?

감사해요.

자식 테이블과 부모 테이블은 일반 데이터베이스 테이블일 뿐이지만 부모-자녀 관계에 의해 설명되는 방식으로 연결됩니다.

일반적으로 한 테이블의 값이 다른 테이블의 값을 참조하는 위치(일반적으로 다른 테이블의 기본 키)를 지정하는 데 사용됩니다.

예를 들어, 뉴스 기사를 상상해 보세요.이것은 다음과 같은 테이블로 나타낼 수 있습니다.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    |                |
+-------------+------------------+------+-----+---------+----------------+
  1. 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