设计问题?

时间:2010-05-13 00:46:06

标签: python django json pickle

我正在构建音乐应用程序,用户可以在其中执行多项任务,包括但不限于听歌,如歌曲,向朋友推荐歌曲和额外的。 目前我有这个型号:

class Activity(models.Model):
    activity = models.TextField()
    user = models.ForeignKey(User)
    date = models.DateTimeField(auto_now=True)
到目前为止,我想到了两个解决方案。 1.将字符串保存到数据库。例如“你听过歌xyz”。 2.创建一个关于活动的字典,并使用pickle或json保存到数据库。

e.g。

dict_ = {"activity_type":"listening", "song":song_obj}

我倾向于第二次实施,但不太确定。

那你怎么看待这两种方法呢?你知道更好的方法来实现目标吗?

2 个答案:

答案 0 :(得分:0)

看起来您只需要一个枚举来匹配数据库中的表。

因此,在您的UserActivity表中,您将拥有 userid,activityid,songid,datetime等等

答案 1 :(得分:0)

GenericForeignKey怎么样?您可以在useridactivityidcontent_objectUserActivity,其中content_object是一首歌,一个用户或完全不同的用户。

content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
相关问题