from django.db import models
class WikiPage(models.Model):
name = models.SlugField()
class WikiPageVersion(models.Model):
page = models.ForeignKey(WikiPage)
version_number = models.PositiveIntegerField()
content = models.TextField
class Meta:
unique_together = ('page', 'version_number')
Η «τρέχουσα» έκδοση μιας σελίδας είναι αυτή που έχει το μέγιστο
version_number. Θέλω ένα queryset με όλες τις τρέχουσες εκδόσεις
(δηλαδή την τρέχουσα έκδοση για κάθε σελίδα). Δηλαδή:
WikiPageVersion.objects.filter(μόνο ένα αντικείμενο ανά page, αυτό
με το μέγιστο version_number)
Το ερώτημά μου δεν είναι μόνο αν γίνεται θεωρητικά (γιατί με SQL
γίνεται, επομένως και με django θα μπορέσει να γίνει, το πολύ-πολύ να
χρειαστεί κανένα extra), αλλά και αν μπορεί να σταθεί στην πράξη,
γιατί ανησυχώ μήπως κάποια rdbms δεν καταφέρνουν να τρέξουν αρκετά
γρήγορα το query γιατί μπερδεύεται ο optimizer.
Φυσικά βάζοντας ένα ακόμα πεδίο, "current", στο WikiPageVersion, λύνω
το πρόβλημα, αλλά θα είναι reduntant και κοιτάζω μήπως καταφέρω να το
αποφύγω.
--
Λάβατε αυτό το μήνυμα επειδή έχετε εγγραφεί στην ομάδα django-gr των Ομάδων Google.
Για να αναρτήσετε κάτι σε αυτήν την ομάδα, αποστείλετε μήνυμα ηλεκτρονικού ταχυδρομείου στη διεύθυνση djan...@googlegroups.com.
Για να καταργήσετε την εγγραφή σας από αυτήν την ομάδα, στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στη διεύθυνση django-gr+...@googlegroups.com.
Για περισσότερες επιλογές, επισκεφθείτε αυτήν την ομάδα στη διεύθυνση http://groups.google.com/group/django-gr?hl=el.
οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ SQL:
http://stackoverflow.com/questions/2074514/django-query-that-get-most-recent-objects-from-different-categories/
> οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ (οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ SQL
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½, οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½ django οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½, οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½-οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ extra), οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½,
> οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ rdbms οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ query οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½ optimizer.
οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½, οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ performance οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ RDBMS-specific:
http://stackoverflow.com/questions/2111384/sql-join-selecting-the-last-records-in-a-one-to-many-relationship