집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 열에 목록을 저장하려면 정션 테이블을 정규화해야 합니까, 아니면 사용해야 합니까?
데이터베이스 열에 목록 저장: 정규화와 접합 테이블
데이터베이스 내에 개체 목록을 저장해야 하는 경우 FOO 개체와 관련된 과일 목록, 정규화와 접합 테이블 간의 선택 등의 열
정규화는 단일 열에 목록을 저장하는 것을 금지합니다. 이 접근 방식은 목록 항목에 대해 별도의 테이블을 생성하여 데이터 무결성을 유지하고 중복성을 줄입니다.
그러나 과일 목록의 경우 이 접근 방식은 이상적이지 않습니다. 과일 ID는 고정되어 다른 테이블에 저장됩니다. 정규화하려면 목록의 각 과일에 대해 과일 테이블에 새 행을 생성해야 하며, 이로 인해 데이터가 너무 커지고 복잡해집니다.
접합 테이블은 반면에 대체 솔루션. FOO 객체와 과일 목록 사이에 다대다 관계를 설정합니다. 접합 테이블의 각 행은 특정 FOO 개체와 특정 과일 간의 연관성을 나타냅니다.
다음은 접합 테이블을 구현하는 방법의 예입니다.
CREATE TABLE FOO ( id int primary key not null, int1 int, int2 int, int3 int ) CREATE TABLE Fruits ( id int primary key not null, name varchar(30) ) CREATE TABLE FOOFruits ( FruitID int references Fruits (ID), FooID int references FOO(id), constraint pk_FooFruits primary key (FruitID, FooID) )
Apple을 추가하려면 접합 테이블을 사용하여 ID=5인 FOO 개체 목록에 Fruit을 추가합니다.
INSERT FOOFruits(FooID, FruitID) SELECT 5, ID FROM Fruits WHERE name = 'Apple'
이 접근 방식은 정규화의 필요성을 없애고 다음을 제공합니다. FOO 개체와 과일 목록 간의 관계를 관리하는 효율적인 방법입니다.
위 내용은 데이터베이스 열에 목록을 저장하려면 정션 테이블을 정규화해야 합니까, 아니면 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!