首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据建模Appengine

数据建模Appengine
EN

Stack Overflow用户
提问于 2013-01-16 05:13:03
回答 1查看 67关注 0票数 0

目前,我有3个数据存储区类

用户活动研讨会

每个研讨会都引用一个事件,并且每个事件只有四个研讨会

在user类中,我有一个list属性,其中引用了每个用户所属的研讨会的密钥。

我希望每个用户只参加一个研讨会活动。

代码语言:javascript
复制
@classmethod
def event_attendance(self, user):
    workshop1 = self.workshops.filter('workshop_number =', 1).get(keys_only = True)
    users1 = User.all().filter('attendance =', workshop1.key()).fetch(149)
    if user in users1:
        return True
    else:
        workshop2 = self.workshops.filter('workshop_number =', 2).get(keys_only = True)
        users2 = User.all().filter('attendance =', workshop2.key()).fetch(149)
        if user in users2:
            return True
        else:
            workshop3 = self.workshops.filter('workshop_number =', 3).get(keys_only = True)
            users3 = User.all().filter('attendance =', workshop3.key()).fetch(149)
            if user in users3:
               return True
            else:
                workshop4 = self.workshops.filter('workshop_number =', 4).get(keys_only = True)
                users4 = User.all().filter('attendance =', workshop4.key()).fetch(149)
                if user in users4:
                    return True
                else:
                    return False

在这里,我查看了一个活动,以查看用户是否注册了这两个研讨会,并使用下面的方法查看他们是否注册了此活动中的研讨会,以查找是哪个研讨会。

代码语言:javascript
复制
@classmethod
def My_Event(self, user):
    workshop1 = self.workshops.filter('workshop_number =', 1).get(keys_only = True)
    users1 = User.all().filter('attendance =', workshop1.key()).fetch(149)
    if user in users1:
        return workshop1
    else:
        workshop2 = self.workshops.filter('workshop_number =', 2).get(keys_only = True)
        users2 = User.all().filter('attendance =', workshop2.key()).fetch(149)
        if user in users2:
            return workshop2
        else:
            workshop3 = self.workshops.filter('workshop_number =', 3).get(keys_only = True)
            users3 = User.all().filter('attendance =', workshop3.key()).fetch(149)
            if user in users3:
               return workshop3
            else:
                workshop4 = self.workshops.filter('workshop_number =', 4).get(keys_only = True)
                users4 = User.all().filter('attendance =', workshop4.key()).fetch(149)
                if user in users4:
                    return workshop4

我对appengine非常陌生,事实上对编程也很陌生(主要是自学)

考虑到我必须以这种方式检查每个事件以查看是否有用户附加,这感觉非常昂贵,有没有办法在我当前的数据建模结构下更有效地完成这一点,或者我应该改变它?

EN

回答 1

Stack Overflow用户

发布于 2013-01-16 20:30:14

首先,使用@classmethod。确保这就是你想要的(在这种情况下这看起来很奇怪)。其余的:在这两个函数中,您都有自己的users-object。为什么不直接获取该用户,检查其出勤属性,然后只获取其中列出的研讨会?(如果需要获取研讨会,对于"def event_attendance“检查用户是否有一个非空的出席列表可能会起到作用)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14347023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档