2017-05-16 1 views
0

전적으로 데이터 저장소를 처리하는 API를 구축하고 있습니다.필터링 된 데이터를 저장하는 방법?

의이 레디 스 내부 상상하자 나는 나중에 컬렉션을 사용하는 대신 원시 JSON을 반환하고 있습니다 년부터 Eloquent Collection을 보유하고있는 키 foo:123 20 분을 기억했습니다.

예를 들어 foo는 수집 내가 동일한 구조를 favorite_color로 검은 을 가진 하지만 항목이있는 새로운 수집, 저장 얼마나

[ 
    { 
     "name":"Doe", 
     "first_name":"John", 
     "age":42, 
     "favorite_color":"red" 
    }, 
    { 
     "name":"Example", 
     "first_name":"Eric", 
     "age":37, 
     "favorite_color":"black" 
    }, 
    .... 
] 

처럼 보일 수 있을까? foo:123:black과 같은 것을 저장해야합니까? 전체 컬렉션을 저장하고 수동으로 필터링합니까? 아니면 Redis를 사용할 때 완전히 다릅니 까?

답변

1

Q : 구조가 같지만 검정색이 좋아하는 항목은 favorite_color로 저장하는 방법은 무엇입니까?

왜 컬렉션을 맵핑하고 favorite_color를 검정색으로 업데이트하지 않는 것이 좋을까요? https://laravel.com/docs/5.4/collections#method-map. 그런 다음 원하는 데이터를 저장하거나 이전 데이터를 덮어 쓰거나 새 데이터를 만듭니다.

Q : foo : 123 : black과 같은 것을 저장해야합니까?

당신이 여기서 무엇을 요구하고 있는지 분명하지 않습니다. 저장 방법이나 명명 규칙에 대한 답변을 드릴 수 있을지 확신 할 수 없습니다.

Q : 전체 컬렉션을 저장하고 수동으로 필터링합니까?

이것은 앱 요구 사항에 따라 결정해야 할 사항입니다. 컬렉션을 직렬화하고 저장하는 것이 가능해야하지만 사소한 차이가있는 여러 컬렉션으로이 작업을 수행하는 경우 많은 리소스가 낭비 될 수 있습니다.

+0

1) 나는 favorite_color가 일치하는 데이터베이스에서 모든 항목을 가져 오는 중 * 검은 색 *을 의미합니다. 2)이 문제가 키 => 값으로 저장되거나 목록/해시/세트로 파기 시작하는 것이 좋은 경우 문제가됩니다. 그리고 만약 그렇다면, 어느 것이 그 유스 케이스에 가장 잘 맞을 것인가. 하지만 지금까지 감사드립니다. :) – Krenor

+0

그래, 우리 중 누구도 당신의 응용 프로그램에 대해 충분히 알 수 없기 때문에이 많은 것들은 일반적이고 의견을 기반으로 할 것입니다. 나는 당신이 foo에 대해 걱정할 필요가있을 것이라고 말하고 싶습니다 : 123 : 검은 색은 충돌을 의미합니다 (다른 이름은 foo : 123 : black입니까? 검정색은 충분히 독특합니까?). 이름. 사전 최적화에 너무 많은 에너지를 낭비하지 말고, 자연 스럽다고 생각한 다음, 너무 많은 메모리, CPU, 시간 등을 사용하는 경우 최적화 작업을 수행하십시오. – Devon