我正在使用Django构建一个诗歌阅读应用程序,并希望存储用户的日常活动。具体来说,我想存储哪个用户阅读哪首诗和什么日期。诗歌的数量也很大(数以千计)并且可能会不断增加。
我发现很难想出一个表结构来存储这些不需要手动更新的数据。将日期作为行和用户vs诗的列表作为每天的值读取是我的第一个想法,但对于大量用户来说列表会很长。
是否有任何标准结构可以处理此类案件?可以在这做什么?
答案 0 :(得分:1)
假设您使用Django的内置用户模型,我会尽量保持简单:
class Poem(models.Model):
title = models.CharField(max_length=100)
#.. other fields
class ReadingHistory(models.Model):
user = models.ForeignKey(User, related_name="user_reading_history")
poem = models.ForeignKey(Poem, related_name="user_read_poems")
date = models.DateTimeField(auto_add=True)
views.py:
def poem_reading_page(request, poem_id):
if request.user.is_authenticated():
poem = Poem.objects.get(pk=poem_id)
#create reading history with this poem
request.user.user_reading_history.create(poem=poem)
# etc etc
虽然没有测试它