제품 목록이 있습니다. 이들 각각은 N 개의 공급자가 제공합니다.
각 제공자는 특정 날짜에 대한 가격을 알려줍니다. 해당 가격은 해당 제공자가 새로운 가격을 정할 때까지 유효합니다. 이 경우 공급자는 새로운 날짜로 새로운 가격을 제공합니다.
MySQL 테이블 헤더는 현재 다음과 같습니다.
provider_id, product_id, price, date_price_effective
격일로, 우리는 현재 날짜에 효과적인 제품 / 가격 목록을 작성합니다. 각 제품의 목록에는 해당 특정 제품이있는 공급자의 정렬 된 목록이 포함됩니다. 그런 식으로, 우리는 최고의 가격을 제공하는 사람으로부터 특정 제품을 주문할 수 있습니다.
효과적인 가격을 얻으려면가있는 모든 행을 반환하는 SQL 문이 있습니다 date_price_effective >= NOW()
. 이 결과 세트는 다음과 같은 파일을 얻는 데 필요한 정렬 및 필터링을 수행하는 루비 스크립트로 처리됩니다.
product_id_1,provider_1,provider_3,provider8,provider_10...
product_id_2,provider_3,provider_2,provider1,provider_10...
이것은 우리의 목적을 위해 잘 작동하지만 여전히 SQL 테이블이 이러한 종류의 정보를 저장하는 가장 좋은 방법은 아니라는 가려움이 있습니다. 나는 이런 종류의 문제가 다른 창조적 인 방법으로 이전에 해결되었다는 느낌을 가지고있다.
이 정보를 SQL 이외의 다른 방법으로 저장하는 더 좋은 방법이 있습니까? 또는 SQL을 사용하는 경우 내가 사용하는 방법보다 더 나은 방법이 있습니까?