Действительно как objectify, хотя все еще борется с тем, что является лучшим способом структурировать мои данные в моем приложении.Я буду запускать новое приложение в ближайшее время и не хочу зацикливаться на структуре, которая может работать неправильно или работать очень медленно.
Приложение будет на HRD и будет иметь большое количествотипы сущностей.Для наглядности приведу несколько примеров сущностей.Предположим, приложение для ресторанов быстрого питания.Каждая цепочка будет сущностью (например, McDonalds, Wendy's и т. Д.).Каждая конкретная франшиза или место будет также юридическим лицом.Сотрудники, Заказы, Меню, Расписания и т. Д. Также будут сущностями.
Наверное, самый главный вопрос - как настроить отношения между этими сущностями?Я храню отношения, храня идентификатор хранилища данных как длинный в каждой сущности.Например, каждая сущность сотрудника будет иметь длинное значение, которое является идентификатором хранилища данных для местоположения, в котором они работают, а также для какой цепочки они являются членами.
С этой структурой я могу запросить все заказы из определенного ресторана с помощью следующего предложения:
Long restaurantId =restaurant.getId();
Query<Order> q=ofy.query(Order.class).filter("location", resturantId);
Просто любопытно, есть ли какие-либо проблемы с использованием хранилища данных / objectify втаким образом.Любой вклад был бы великолепен!Я использовал что-то подобное в небольшом масштабе и, кажется, работает нормально.В идеале я хотел бы получить наиболее эффективную структуру, и я понимаю, что это может занять некоторое тестирование.Однако после того, как приложение будет развернуто, его будет очень сложно изменить ...
@Entity
public class Chain {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String type;
//getters & setters, etc
}
@Entity
public class Location {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long chain; //which resturant chain the location belongs to (mcdonalds, wendy's, etc)
private String address;
private String owner;
private String phoneNumber;
//getters & setters, etc
}
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long location; //which location the employee works for
private Long chain; //which resturant chain the location belongs to (mcdonalds, wendy's, etc)
private String name;
private String position;
//getters & setters, etc
}
@Entity
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long chain; //which resturant chain the location belongs to (mcdonalds, wendy's, etc)
private Long location;
private Long employee; //employee that took order
private Order order;
private String time;
//getters & setters, etc
}