Google app engine 数据建模Appengine
目前我有3个数据存储类 使用者 事件 车间 每个研讨会引用一个事件,每个事件只有四个研讨会 在user类中,我有一个list属性,其中我引用了每个用户都参与的研讨会的密钥 我希望每个用户只参加一次研讨会活动Google app engine 数据建模Appengine,google-app-engine,data-modeling,Google App Engine,Data Modeling,目前我有3个数据存储类 使用者 事件 车间 每个研讨会引用一个事件,每个事件只有四个研讨会 在user类中,我有一个list属性,其中我引用了每个用户都参与的研讨会的密钥 我希望每个用户只参加一次研讨会活动 @classmethod def event_attendance(self, user): workshop1 = self.workshops.filter('workshop_number =', 1).get(keys_only = True) users1 = Us
@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
在这里,我回顾了一个事件,以了解用户是否参加了其中一个研讨会,并使用下面的方法了解他们是否参加了该事件中的研讨会,以确定是哪一个研讨会
@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非常陌生,事实上,我对编程很陌生(大部分是自学的)
考虑到我必须以这种方式检查每个事件,以查看是否有用户被连接,这感觉非常昂贵,是否有一种方法可以更有效地使用我当前的数据建模结构,或者我应该更改它???首先,您使用@classmethod。确保这是你想要的(在这种情况下看起来很奇怪)。 对于其余部分:在这两个函数中,都有您的users对象。你为什么不去找那个用户, 检查其考勤属性,并仅获取其中列出的车间?
(如果需要获取研讨会,那么“def event_Attention”检查用户是否有一个非空的出席列表可能会起到作用)我是以一种非常迂回的方式来完成的,结果正如你所说的那样。