2015-01-22 2 views
0

저는 PHP와 MySQL을 처음 사용하며 현재 직면하고있는 문제에 대한 도움을 필요로합니다. 그때 나는 깨끗 테이블을 만들려고하고 다음PHP와 MySQL을 사용하여 테이블을 저장하는 더 좋은 방법을 찾고 있습니다.

표 예

항목 | 부 | 수량

항목 1 | 123 | 2

항목 1 | 124 | 2

항목 2 | 123 | 1

항목 2 | 125 | 3

,745,

정상적인 테이블을 사용하여이 작업을 수행 할 수 있지만 중복 데이터가있는 반복적 인 행이 많은 데이터베이스를 구상 할 수 있습니다. 예를 들어 Item1을 여러 번 사용하여 각 파트를 식별했습니다.

데이터베이스에이 데이터를 저장하는 더 깨끗한 방법이 있는지 궁금합니다. PHP를 사용하여 데이터를 MySQL에 저장합니다. 항목 열을 고유하게 만들려고하지만 그럴 수는 없습니다.

직렬화, 배열 및 배열을 살펴 보았지만 여기에 모두 들어 맞을 수 있도록 모든 방법을 이해할 수는 없었습니다. 수량 2

부 (124) :

항목 1은 다음과 같은 부분

부 (123) 사용 : 최종 결과라는 PHP보고 될 항목이 다음과 같은 부품을 사용하여 2

수량

123 : 수량 1

부 125 : 수량 3

01,

도움을 주시면 대단히 감사하겠습니다.

+6

읽어보기 : http://en.wikipedia.org/wiki/Database_normalization –

+0

마크 B가 맞습니다. 문제의 첫 번째 단계는 데이터베이스 아키텍처입니다. 당신이 성취하려는 것을 위해 당신은 당신의 데이터베이스를 표준화해야 할 것입니다. –

답변

5

항목과 부품간에 다 대다 관계가 있습니다.

그래서 세 개의 테이블 (item, part 및 link_item_part)이 필요합니다.

항목 테이블의 기본 키는 ID입니다. 파트 테이블도 마찬가지입니다. link_item_part 테이블에는 두 개의 외래 키 (하나는 항목에, 다른 하나는 부분에 있음)의 복합 기본 키 빌드가 있습니다.

-- item table 
| id | name | 
+----+--------+ 
| 1 | Item 1 | 
| 2 | Item 2 | 

-- part table 
| id | name | 
+----+------+ 
| 1 | 123 | 
| 2 | 124 | 
| 3 | 125 | 

-- link_item_part 
| item_id | part_id | quantity | 
+---------+---------+----------+ 
|  1 |  1 |  2 | 
|  1 |  2 |  2 | 
|  2 |  1 |  1 | 
|  2 |  3 |  3 | 

편집 : 쿼리와 함께 조작하려는 경우 데이터베이스에 기본이 아닌 형식으로 데이터를 저장하지 마십시오. 기본이 아닌 형식으로 데이터를 저장하는 경우 데이터를 조작하기가 어려우며 속도가 느려집니다.

+0

위대한 답변 :) –

관련 문제