Mam model A
, który zawiera ogólną relację klucza obcego z opcjami ograniczenia do 3 innych modeli (traktuj je jako B
, C
i D
) w tej samej aplikacji. I znam ograniczenia generycznych kluczy obcych, których nie możemy używać filter
lub get
ani żadnych innych operacji związanych z zapytaniami.Django Ogólne klucze obce - dobre czy złe, biorąc pod uwagę wydajność SQL?
Aby coś takiego osiągnąć, Muszę najpierw filtrować obiekty B, C i D jako zestaw zapytań, iterować nad nimi i używać ogólnej relacji odwrotnej, aby uzyskać obiekty A
jako listę (nie zestaw zapytań).
Nie jestem pewien, w jaki sposób wpłynie to na wydajność SQL w bazie danych, ponieważ zapytanie nie jest bezpośrednie.
PS: Potrzebuję użyć ogólnych znaków obce, więc proszę sugerować jakiekolwiek ulepszenie SQL zamiast przeprojektowywania modeli.
Korzystanie z Django 1.4.3 i PostgreSQL.
czym właściwie są "ogólne" klucze zagraniczne? –
Użyłem tego samego ustawienia, co opisano tutaj, https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1 – Babu