我正在使用Django构建一个诗歌阅读应用程序,并希望存储用户的日常活动。具体来说,我想存储哪个用户阅读哪首诗和日期。而且,诗歌的数量相当大(以千为单位),而且可能还会继续增加。
我发现很难找到不需要手动更新的表结构来存储这些数据。我第一次想到的是把天作为行,把用户和诗的列表作为相对于每天的值来阅读,但是对于大量的用户来说,这个列表会很长。
是否有标准的架构来处理这样的案件?这里能做些什么?
发布于 2016-06-04 13:29:29
假设您使用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虽然没有测试
https://stackoverflow.com/questions/37630677
复制相似问题