Я пытаюсь создать систему обмена сообщениями в Django, и я столкнулся с проблемой: как мне эффективно найти все сообщения, связанные в потоке?
Давайте представим, что у меня есть две модели:
class Conversation(models.Model):
sender = models.ForeignKey(User)
receiver = models.ForeignKey(User)
first_message = models.OneToOneField(Message)
last_message = models.OneToOneField(Message)
class Message(models.Model):
previous = models.OneToOneField(Message)
content = models.TextField()
(код не проверен, я уверен, что он не будет работать как есть)
Поскольку он спроектирован как простой связанный список, является ли это единственным способом рекурсивного обхода? Должен ли я попытаться получить предыдущий предыдущий, пока не найду первый, или есть способ запросить их все более эффективно?