我有一个运行 sqlalachemy 的 Flask 应用程序。我对 sqlalchemy 很陌生,所以我真的很困惑。我做了一堆课程:
用户课程讲义队列资产
都有关系——用户有很多课程,课程有很多用户,用户有很多讲座,讲座有很多用户,用户有很多笔记,笔记有很多用户,课程有很多讲座,讲座有很多笔记,课程有很多笔记,讲座有一个1对1的队列,一个用户可以有很多队列,一个队列需要很多用户,等等
所以每当我创建一个讲座时,我是否也必须在与之相关的所有其他事情中实例化它?
例如,这是我为制作新讲座而编写的代码
def createLecture(user, course):
# user and course are existing objects fetched from the db already
# create new lecture
newLecture = Lecture()
db.session.add(newLecture)
# add lecture to course, add new queue to lecture, add user to queue, add user to lecture
course.lectures.append(newLecture)
lecture.users.append(user)
newQueue = Queue()
db.session.add(newQueue)
newQueue.users.append(user)
newQueue.lecture = newLecture
db.session.commit()
return newLecture
这让我觉得非常复杂和令人困惑。除了令人困惑之外,我什至不知道我是否涵盖了我应该建立的所有关系(很容易忘记有这么多的关系)。
当新对象与具有各种关系的许多其他对象相关联时,必须有一些更好的方法来添加新对象。
我怎样才能更有条理?