【发布时间】:2017-06-08 13:01:52
【问题描述】:
我建立了一个 SQLAlchemy 数据库,大致如下:
class ChangelogEntry(db.Model):
id = db.Column(db.Integer, primary_key=True)
apps = db.relationship('App', secondary=app_changelogEntry)
appGroups = db.relationship('AppGroup', secondary=appGroup_changelogEntry)
class App(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True, index=True)
appGroups = db.relationship('AppGroup', secondary=app_appGroup)
class AppGroup(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True, index=True)
apps = db.relationship('App', secondary=app_appGroup)
更新:
app_changelogEntry = db.Table('App_ChangelogEntry',
db.Column('app_id', db.Integer, db.ForeignKey('app.id')),
db.Column('changelog_id', db.Integer, db.ForeignKey('changelog_entry.id'))
)
appGroup_changelogEntry = db.Table('AppGroup_ChangelogEntry',
db.Column('appGroup_id', db.Integer, db.ForeignKey('app_group.id')),
db.Column('changelogEntry_id', db.Integer, db.ForeignKey('changelog_entry.id'))
)
app_appGroup = db.Table('App_AppGroup',
db.Column('app_id', db.Integer, db.ForeignKey('app.id')),
db.Column('appGroup_id', db.Integer, db.ForeignKey('app_group.id'))
)
一个 App 可以是多个 AppGroups 的一部分,用户可以创建 ChangelogEntries 并且可以选择此 ChangelogEntry 所属的 App/Apps 和/或 AppGroups。
看起来像这样:
好的。我只想获取属于例如的所有 ChangelogEntries App3(App3 是 AppGroups Group1 和 Group2 的一部分),在本例中是 Group1 和 Group2。
希望你能帮我解决这个问题!
【问题讨论】:
-
请同时包含关联表。
-
我是否理解正确,因为您希望查询与给定应用程序有直接关系的变更日志条目,以及与包含给定应用程序/应用程序的组有关系的变更日志条目?
-
我现在包含了关联表。我希望现在更容易理解。但你是对的,这就是我想要的..
标签: python sql sqlalchemy flask-sqlalchemy