2009-12-29 8 views
5

Podczas gdy pójdę po wzór Ducha w relacji 1: 1, nie jestem pewien, czy jest to wystarczające w związku 1: 1.Jak załadować relację jeden-do-wielu w programie odwzorowującym dane?

Na przykład, gdy ładuję obiekt zamówienia, który może mieć setkę obiektów przedmiotów, najpierw przypisałbym wartość NULL do właściwości items.

Pytanie brzmi:

A) Czy mogę przypisać wartość NULL, a następnie, przy pierwszym dostępie do składników majątkowych wygląd dla wszystkich zamówień o tej pozycji i załadować wszystkie z nich?

B) Czy powinienem załadować tylko lekki zestaw rekordów zawierający tylko wszystkie parametry order_id i załadować 100 obiektów Ghost przedmiotów, które mają tylko zestaw order_id, ale wszystko inne NULL - i jak tylko obiekt Item jest dostępny, aby pobrać więcej szczegóły z niego, leniwy załadować te konkretne dane obiektu przedmiotu?

Odpowiedz

1

Cóż, IMO Twoje potrzeby w zakresie leniwego ładowania są różne w każdej sytuacji. Powiedziałbym jednak, że jeśli masz wystarczająco duże zamówienia, aby mieć na nich 100 przedmiotów, rzadko kiedy chcesz załadować wszystkie 100 przedmiotów w tym samym czasie.

To, co polecam, to ładowanie każdego przedmiotu na żądanie, co pozwala na załadowanie "strony" przedmiotów lub tylko jednego przedmiotu. Na przykład, jeśli chcesz wyświetlić listę wszystkich elementów, które można załadować na tę listę i ponieważ każdy element może zostać załadowany na żądanie, wystarczy załadować wybraną stronę. Co więcej, jeśli chodzi o wydajność, prawdopodobnie chcesz poddać recyklingowi te obiekty, abyś mógł rozważyć zbudowanie powiedzmy 10 przedmiotów Ghost, a następnie załaduj na raz "stronę" do tych 10 elementów.

Z drugiej strony, ponieważ przedmiot jest ładowany na żądanie jako taki, wystarczy, że załaduje się jedną pozycję, pozwalającą wyświetlić pełne szczegóły tego elementu, tylko wtedy, gdy jest to potrzebne.

Powiązane problemy