Jest to rodzaj pytanie kontekstowej, że bez całego modelu danych może nie być możliwe, aby wymyślić najlepszy projekt.
Ale - szerokość i długość geograficzna są modelowane naturalnie jako podwójne. Nie powinny one być opcjonalne, ponieważ jednostka o nazwie "lokalizacja" nie ma sensu bez obu. Prawdopodobnie powinieneś także modelować krąg niepewności w metrach, nie możesz go teraz użyć, ale może być bardzo przydatny i będzie cię bardzo niewiele kosztować.
Myślę, że chcesz mieć odwrotną relację, ponieważ może być przydatne rozpoczęcie od lokalizacji i znalezienie zdjęć zrobionych w pewnej odległości od tego miejsca. Nie sądzę, że chcesz zrobić wiele zdjęć i lokalizacji: wiele relacji, ponieważ zapisywanie danych przez próbę ponownego użycia lokalizacji jest fałszywą ekonomią, sprawi, że twój kod będzie bardziej złożony i zaoszczędzi bardzo niewiele bajtów. zdjęcie: lokalizacja jest bardziej naturalna 1: 1, ale możesz skorzystać z dodania metody, takiej jak (NSArray*)locationsWithinMeters:(float)meters ofLocation:(Location*)thisLocation
, aby przywrócić wszystkie lokalizacje "wystarczająco blisko" w niektórych lokalizacjach - bardzo dobrze dla znalezienia wszystkich zdjęć danego miejsca.
Nie zgadzam się, że nie powinieneś używać relacji odwrotnej do wielu między lokalizacjami i zdjęciami. Nie ma to nic wspólnego z zapamiętywaniem pamięci lub pamięci. Modele powinny odzwierciedlać rzeczywistość, a relacje same w sobie są danymi. W takim przypadku wiele zdjęć może zostać zrobionych w tej samej lokalizacji, dlatego warto wybrać lokalizację i znaleźć wszystkie zrobione tam zdjęcia. Relacje w modelu powinny odzwierciedlać to rzeczywiste powiązanie jak najbliżej. – TechZen
To rozsądny punkt widzenia, ale w jaki sposób decydujesz, które lokalizacje są "takie same"? Pomyśl o tym, aby zlokalizować punkt orientacyjny lub odtworzyć zdjęcie, a zobaczysz, że zaokrąglanie najlepiej pozostawić do konfigurowalnego zapytania. Lepiej może pozostać Lokalizacja jako dokładną jednostką 1: 1 ze zdjęciem i dodać jednostkę regionu o rozpiętości atrybutów (średnica w metrach) i środku, która może mieć wiele lokalizacji. –