2012-06-28 2 views
0

저는 app-Engine Datastore와 NoSQL 세계에 공통적으로 익숙합니다. 나는 사용자가 자신의 경비를 매일 신고 할 수있는 간단한 응용 프로그램을 개발 중입니다. 모든 사용자 (계정)는 자체 선언 된 비용을 가지고 있습니다. 계기판에는 사용이 선언 된 모든 연도를 포함하는 간단한 GWT 셀 트리가 포함되어 있습니다.이 셀 트리는 몇 년 동안 클릭하면 몇 달 동안의 모든 달을 가져와 그 달을 클릭하면 모든 일 마지막으로 하루를 클릭하면 그 날에 선언 된 모든 경비를 받게됩니다. 1월앱 엔진 쿼리

_ | | _ 2월 | _...

나는 데이터 비용 엔티티를 저장이

* 2011

* 2010

|_ jan 
|_1 
|_2 
    |_Food 12d 
    |_Dress 200d 
    |_Fun 150d 
    |_ ... 

|_ feb 
|_ ... 

같은 것입니다 계정으로 각 사용자 (계정)에 대한 모든 비용의 부모 계정으로 저장하십시오. 내 비용은 다음과 같다 : 공용 클래스 비용은 비교할 Serializable를 구현 {

private String name; 
    private double price; 
    private Date date; 

    public Expense(String name, double price, Date date) { 

    this.name = name; 
    this.price = price; 
    this.date = date; 
    } 

    public Expense() { 
    } 

    public String getName() { 
    return name; 
    } 

    public double getPrice() { 
    return price; 
    } 

    public boolean isPriceValid() { 
    return price > 0; 
    } 

    public void setName(String name) { 
    this.name = name; 
    } 

    public void setPrice(double price) { 
    this.price = price; 
    } 

    public Date getDate() { 
    return date; 
    } 

    public void setDate(Date date) { 
    this.date = date; 
    } 

    @Override 
    public int compareTo(Expense expense) { 
    if (name.equals(expense.getName())) { 
     if (date.equals(expense.getDate())) { 
     return new Double(price).compareTo(expense.getPrice()); 
     } 
     return date.compareTo(expense.getDate()); 
    } 
    return name.compareTo(expense.getName()); 
    } 

내 질문은 : 데이터 저장소에서 비용을 쿼리하고 지정된 계정에 relater 모든 다른 년을 반환하고에 넣어하는 방법 목록을 만들 수있는 목록이나 세트 또는 다른 것? 모든 비용 항목을 가져 와서 반복하고 모든 다른 연도를 가져와야합니까? 합리적으로 들리지 않는다. 모든 조언을 환영하며 진심으로 감사드립니다. 게시물에 관련된

답변

1

여러 의견 :

이 -> 내가 두 번으로 금융 금액을 저장하지 않을 것입니다. 이 경로를 사용하면 반올림 오류로 큰 문제가 발생할 수 있습니다. 이 게시물에 많은 게시물이 있습니다. "DollarCent"로 저장하고 정수로 선언 할 것을 제안합니다. 금액을 저장할 때 100을 곱하면 표시 할 때 100으로 나눕니다.

-> 데이터 저장소에서 엔티티를 Serializable을 구현하는 것으로 선언하는 이유는 무엇입니까? 나는 Serializable없이 저장할 것이다.

-> 연도별로 데이터를 표시하는 것과 관련된 특정 질문과 관련하여 질문을 읽는 것 외에는 데이터를 가져 오는 것 외에 다른 방법이 없습니다. 내가 할 일은 나중에 GAE가 데이터를 주문하지 않도록 주문하는 것입니다. Objectify를 사용하면 q.filter (...). order (-date) .order (amount)가됩니다.

희망이 도움이됩니다.

휴즈

+0

1- 저는 중급 자바 개발자입니다. 2 GWT에서 필요로하는 엔티티 i의 직렬화 가능. 3 세월을 저장하는 방법을 찾았습니다. 4- 귀하의 제안을 고려하겠습니다. 답장을 보내 주셔서 감사합니다. – Adelin