python – GAE组织数据结构问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – GAE组织数据结构问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2039字,纯文字阅读大概需要3分钟。
内容图文
![python – GAE组织数据结构问题](/upload/InfoBanner/zyjiaocheng/742/bc2aac7f5f3a4973b945f8e205100c23.jpg)
好.我正在和GAE合作.我想创建这样的东西:
我有类型“组”“主题”“标签”:
>每个“团体”可以拥有尽可能多的人
根据需要“主题”
>每个“主题”可以包含尽可能多的“标签”
如所须
>每个“组”可以有尽可能多的“标签”
如所须
它就像圆圈一样.
现在我有这样的事情:
class TopicGroup(db.Model):
value = db.StringProperty(required=True)
class Topic(db.Model):
title = db.StringProperty(required=True)
group = db.ReferenceProperty(TopicGroup, 'group', 'topics', required=True)
class TopicTag(db.Model):
topic = db.ReferenceProperty(Topic, 'topic', 'tags', required=True)
group = db.ReferenceProperty(TopicGroup, 'group', 'tags', required=True)
value = db.StringProperty(required=True)
但这并不好(在我的模型中“主题”只能有一个标签,但是我需要“主题”来根据需要提供尽可能多的标签)
好吧,我脑子里已经有了一个裂缝…是否有人可以提供帮助?
解决方法:
多对多连接可以实现为连接表(或关系模型).在下面的解决方案中,有一个模型包含应用于各个组(GroupTags)的所有标记以及一个包含应用于主题(TopicTags)的标记的模型.
将标签本身与标签的引用分离后,您可以执行更改标签拼写的操作,而无需更新应用该标签的每个组或主题.
此外,此模型充分利用了AppEngine在具有引用它们的其他实体的实体上创建自动反向引用的事实.在下面的模型中,Group实体将拥有一个名为topics的属性,该属性是一个查询,用于获取组参考指向该组的所有Topic实体.类似地,每个Group从GroupsTags模型获取一个tags属性,该属性为其提供属于它的所有Tag实体.每个Tag实体都获得一个groups和topics属性,该属性是对分配了给定Tag的那些类型的所有实体的查询,使得按标签搜索(一种非常典型的操作)非常简单.
这是一种非常强大而灵活的方法来建模您的系统.
class Group(db.Model):
# All of my group-specific data here.
class Topic(db.Model):
title = db.StringProperty(required=True)
group = db.ReferenceProperty(Group, collection='topics')
# other topic-specific data here.
class Tag(db.Model):
text = db.StringProperty(required=True)
class GroupTags(db.Model):
group = db.ReferenceProperty(Group, collection='tags')
tag = db.ReferenceProperty(Tag, collection='groups')
class TopicTags(db.Model):
topic = db.ReferenceProperty(Topic, collection='tags')
tag = db.ReferenceProperty(Tag, collection='topics')
内容总结
以上是互联网集市为您收集整理的python – GAE组织数据结构问题全部内容,希望文章能够帮你解决python – GAE组织数据结构问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。