2012-11-06 2 views
1

나는 마침표로 구분 된 가변 길이 문자가있는 모델 번호로 가득 찬 데이터베이스를 가지고 있습니다.PHP는 중첩 된 JSON으로 결과 집합 로직을 구성합니다

Model number families: 
xxxx.xx.xxxx 
xxxx.xx.kjfd 
xxxx.kj.jkfdk 
yy.yy.a 
yy.yy.b 

등등.

JSON을 올바른 구문으로 닮아 가려고합니다. 모델 번호의 가족 :

{ 
    "name": "xxxx", 
    "children": [ 
     { 
      "name": "xx", 
      "children": [ 
       { 
        "name": "xxxx" 
       }, 
       { 
        "name": "kjfd" 
       } 
      ] 
     }, 
     { 
      "name": "kj", 
      "children": [ 
       { 
        "name": "jkfdk" 
       } 
      ] 
     } 
    ] 

나는 어떤 모델을 깰 모델 번호에 preg_split을 수행하여 시작했습니다. 아래로 그것의 분대로. 그런 다음 나는 그 기간 이전의 첫 등장 인물들을 이전의 인물과 비교하려고 노력했고 내 두뇌는 얼어 붙었다. 나는 이것을 구성하는 더 좋은 방법이 있어야한다고 생각한다.

이미 분리 된 DB에 저장하는 것이 더 좋을까요?

의견을 보내 주셔서 감사합니다.

이동해야 할 곳은 한 곳뿐입니다.

+0

이것은 답변과 관련이 없지만이 조언을 받아들입니다 : 나중에 테스트 문자열을 사용할 때, sdsfgh와 같은 일을하고 대신 실제 이름을 시험해보고 (예를 들어 판단하면) 명확하게 볼 수 있습니다. –

+0

고마워요. 다음 번에 그렇게 할게요. – rd42

답변

1

이미 분리 된 DB에 저장하는 것이 좋을까요?

다릅니다. 한 곳에서 그 json의 조각과 다른 곳에서 다른 조각을 필요로하는 기회가 있다면, 같은 json에 10 개의 요청을하지 않으려면 데이터베이스에 별도로 설치하는 것이 좋습니다. 나는 개인적으로 최근에 그 문제에 직면했다. 관련없는 일종의 더 많은 데이터가 같은 json으로 그룹화되었고, 나는 그 json을 완전히 다른 이벤트 (저장 : 삽입/업데이트,로드, 이벤트에 대한 json 데이터의 메일 부분)에서 호출해야했다. , 등).

대신에 모든 데이터를 한 곳에서 필요로한다면 모든 데이터를 동일한 json에 넣으십시오.

당신은 어느쪽으로 갈 것인지 결정해야합니다. 둘 중 어느 쪽도 잘못되었습니다. 대부분 당신이 비슷한 것을해야하는 NEXT 시간을 배울 것이기 때문입니다. :)

+0

굉장한 충고, 고마워요! 당신은 제가 두려웠 던 시나리오 중 하나를 설명했습니다. – rd42

+0

엉덩이 전체에 json을 가져 와서 구문 분석 한 다음 작은 정보를 업데이트하고 다시 문자열로 바꾸고 데이터베이스의 전체 데이터를 (물론 업데이트로) 바꿉니다. 사용자가 어딘가에있는 열쇠. 그것은 틀 렸습니다. –

+0

데이터를 정규화하여 각 테이블에 자체 테이블이 있습니다. 그래도 여전히 헷갈 렸습니다 :) 끈기! – rd42