내 REST 백엔드에 google-datastore를 사용하고 데이터베이스에 objectify를 사용하여 데이터베이스에 액세스하고 있습니다.데이터 저장소에서 하위 엔티티의 속성을 사용하여 상위 엔티티를 필터링하는 방법
단위를 구성 요소 또는 조립 된 단위로 저장할 수있는 단위 엔티티를 만들고 싶습니다. 기본적으로 조립 된 단위는 여러 구성 요소로 이루어져 있으며 자체 속성도 있습니다. 조립 된 유닛에는 여러 유형이 있으며 구성 요소에는 여러 유형이있을 수 있습니다. 여기
public class UnitEntity {
Long unitId;
String serialNumber;
String state;
String unitType;
Long parentId;// -> this would be null for all assembled units and in case of components, if they are part of any assembled unit, it will be the Id of the assembled unit (This is added so that I can list all components of a particular assembled unit)
UnitParameters unitParameters;
}
UnitParameters 등 엔티티 클래스가 될 일이 연장 상이한 클래스 들일 것 "UNITTYPE"의 값에 기초하여, 즉, 유닛 타입에 특정한 속성을 포함하는 다형성 클래스 것 "UnitParameters".
하나의 구성 요소 (예 : component1, 즉 unitType = component1)에 modelNumber라는 속성이 있다고 가정 해 보겠습니다. 이 속성은 unitType = component1 인 모든 엔터티의 unitParameters에 저장됩니다.
이제 unitType = assembledUnit1이고 modelNumber가 2.0 인 하위 구성 요소 1이있는 단위를 나열 할 수 있습니다.
(I 쉽게 modelNumber는 2.0 형 컴포넌트 1의 목록 단위를 얻을 수 있지만, 나는 또한 부모 엔티티 얻을 수 있어야합니다) 여기 그래서 기본적으로
나는 필터링에 의해 부모 개체를 얻기 위해 노력하고 있어요을 아이들의 속성. 이것이 데이터 저장소에서 가능하고 객체화할 수 있는지 알고 싶습니다. 이 기능을 수행 할 수있는 방법이 있습니까?
업데이트 - 후속 질문을 @stickfigure으로 답변에 따라 :
내 사용 사례에 대한 (MySQL을 기반으로) 구글 클라우드 SQL로 갈 경우, 어떻게 내 데이터를 모델링한다 ?
처음에는 각 unitType에 대한 테이블을 가지고 있다고 생각했습니다. unitTypes - assembledUnit1, assembledUnit2 및 component1의 3 가지 유형이 있다고 가정 해 보겠습니다. 이제 각 장치의 세부 정보를 나열하는 API를 원한다면 어떻게 클라우드 SQL을 사용하여이 작업을 수행 할 수 있습니까?
모든 엔티티가 동일한 "종류"였기 때문에 데이터 저장소로 수행 할 수있는 작업입니다.
조립 된 unitUnit1, assembledUnit2 등의 모든 단위를 나열하기 위해 별도의 API를 사용할 수는 있지만 모든 단위를 나열 할 수있는 단일 API를 어떻게 가질 수 있습니까?
누군가가 REST API GET/units/{unitId}을 호출하면 올바른 것으로 보이지 않는 각 테이블의 unitId를 확인해야한다고 생각합니다.
이 문제를 해결할 수있는 한 가지 방법은 모든 unitTypes의 열에 대한 상위 집합이 될 "단위"라는 하나의 테이블을 만드는 것입니다. 그러나 각 행에 대해 빈 열이 많을 것이고 새 unitType이 추가되면 스키마를 변경해야하기 때문에 이것이 좋은 설계 방법이라고 생각하지 않습니다.
응답 해 주셔서 감사합니다. 질문에 업데이트 된 답변을 기반으로 몇 가지 추가 질문이 있습니다. –