2009-04-17 3 views
0

현재 MySQL에 값을 저장하는 테이블이 있습니다.하지만 도시와 같이 값의 배열을 저장하는 테이블에 필드를 추가하고 싶습니다. 그 배열을 단순히 CSV로 저장해야합니까? 각 행마다 자체 배열이 필요하므로 이전 표에 삽입 된 각 행에 대해 새 테이블을 만들고 2-5 행을 삽입하는 것이 불안합니다.테이블에 저장/검색 배열을위한 최선의 방법

가 난 그냥 생각할 수 없다 :) 이름이 있어야 이러한 상황 같은 느낌

요소의 편집

수 - 2-5 (도시의 동적 목록에서 선택 배열은 테이블 인 목록을 참조 함)

이 필드는 검색 할 필요가 없으며 단순히 다른 데이터와 함께 검색됩니다.

답변

1

"올바른"방법은 각 값을 보유하는 다른 테이블을 갖는 것이지만 그 경로를 가기를 원치 않으므로 구분 된 목록이 작동해야합니다. 데이터에 표시되지 않는 구분 기호를 선택해야합니다. 더 나은 경로 일 수있는 데이터와 상호 작용할 계획에 따라 XML로 데이터를 저장할 수도 있습니다.

+0

텍스트 필드에 데이터를 저장하고 XML을 고려하는 경우 YAML에게 최소한 지나치게 눈에 띄지 않는 서비스를 제공합니다. 개종자가되는 데는 시간이 전혀 걸리지 않았습니다. – Sniggerfardimungus

+0

반드시 옳고 그른 것은 아니지만이 정보를 저장/검색하는 가장 좋은 방법을 찾으려고합니다. – Blaine

0

아마도 당신이 찾고있는 단어가 "정상화"됩니다. 에서처럼 배열을 별도의 테이블로 이동하고 키를 사용하여 첫 번째 테이블에 연결합니다. 아래와 같은 여러 가지 장점을 제공합니다

  • 배열의 크기는 성장할 수있는 거의 무한정

"좋아요"를 사용하지 않고 배열의 값을 검색하는 효율적인 저장

  • 능력

    물론이 데이터를 정규화할지 여부는 사용자가 언급하지 않은 많은 요소 (예 : ele 번호가 고정되어 있는지 여부, 요소를 검색 할 필요가 있는지 여부 등을 알려줍니다.

  • +0

    나는 당신의 알려지지 않은 것에 대답했다. – Blaine

    1

    쉼표 (또는 다른 논리 구분 기호)로 구분 된 값을 포함하는 필드에 대한 아이디어가 있습니다. 필드가 최대 배열 크기를 유지하기에 충분히 커야합니다. 그런 다음 필드를 꺼내면 구분 기호를 사용하여 긴 문자열에 대해 explode()를 수행하면 코드에서 배열이 즉시 채워집니다.

    0

    응용 프로그램 PHP입니까? 기능을 조사해 볼 가치가 있습니다. serializeunserialize.

    이 두 함수를 사용하면 데이터베이스에 배열을 저장 한 다음 나중에 해당 배열을 다시 만들 수 있습니다.

    0

    다른 사람이 언급했듯이 다른 테이블은 올바른입니다.

    그러나 실제로 MySQL에서 PHP를 사용한다고 가정하면 (serialize()) 직렬화 된 값을 저장하지 않으시겠습니까?

    관련 문제