2011-11-30 6 views
1

우리는 aws-sdk (특히 AWS :: Record :: Base)를 사용하고 있습니다.aws-sdk-ruby 동일한 도메인을 공유하는 AWS :: Record :: Base 레코드

다양한 이유로 인해 우리는 sdb의 동일한 도메인 내에 다양한 개체의 레코드를 넣어야합니다.

우리가 여기서 생각해 보았던 접근법은 객체 이름을 포함하는 각 객체에 속성을 추가 한 다음 sdb에서 객체를 얻을 때 finder 메소드의 where 절에이를 포함시키는 것입니다. 독자

내 질문은 :

  1. 의견이 방법에 무엇입니까?

  2. 어떻게하면 잘 수행 할 수 있습니까? 각 모델에서 명시 적으로 정의하지 않고 객체에 포함 된 기본 속성을 추가하는 것이 가장 좋은 방법은 무엇입니까? 새 기본 속성을 고려한 절이 sdb에서 객체를 가져 오는 데 충분한 지 찾기 메소드에서 find 또는 where를 대체합니까?

감사합니다.

답변

1
  1. 정말 문제에 따라 다르지만 약간 불쾌합니다. 이진 레코드는 훌륭하고 멋쟁이지만, 사과와 공룡으로 시작해서 공통적 인 속성이없는 경우이 접근법은 [250 개의 SimpleDB 도메인에 대한 (겉으로보기에 무의미한) 할당량을 보존하는 것 외에도] 내가 아는 이점이 없습니다. 귀하의 기록이 인 경우이 공통적인데,이 접근법이 어디에서 유용 할 수 있는지 알 수 있습니다.하지만 Btrieve (C 조합을 통해 달성)의 변형 레코드가있는 기존 시스템으로 인해 나 같은 상처를받은 사람은이 접근 방식에 대한 단호한 반감을 가지고 있습니다.

  2. 제가 생각할 수있는 가장 깨끗한 접근법은 모델이 상속을 통해 공통 부모를 공유하는 것입니다. 그런 다음 부모는 자식 유형을 알 수 있고 적절하게 쿼리를 구현할 수 있습니다. 그러나이 디자인은 분명히 SOLID이 아니며 Law of Demeter을 위반합니다.

관련 문제