Tôi đang cố gắng tạo mối quan hệ nhiều đến nhiều ở đây trong Flask-SQLAlchemy , nhưng có vẻ như tôi không biết cách điền vào "cơ sở dữ liệu số nhận dạng nhiều đến nhiều" . Bạn có thể vui lòng giúp tôi hiểu những gì tôi đang làm sai và nó trông như thế nào?
class User(db.Model):
__tablename__ = 'users'
user_id = db.Column(db.Integer, primary_key=True)
user_fistName = db.Column(db.String(64))
user_lastName = db.Column(db.String(64))
user_email = db.Column(db.String(128), unique=True)
class Class(db.Model):
__tablename__ = 'classes'
class_id = db.Column(db.Integer, primary_key=True)
class_name = db.Column(db.String(128), unique=True)
và sau đó là cơ sở dữ liệu định danh của tôi:
student_identifier = db.Table('student_identifier',
db.Column('class_id', db.Integer, db.ForeignKey('classes.class_id')),
db.Column('user_id', db.Integer, db.ForeignKey('users.user_id'))
)
cho đến nay nó trông như thế này khi tôi cố gắng chèn dữ liệu vào cơ sở dữ liệu.
# User
user1 = User(
user_fistName='John',
user_lastName='Doe',
user_email='john@doe.es')
user2 = User(
user_fistName='Jack',
user_lastName='Doe',
user_email='jack@doe.es')
user3 = User(
user_fistName='Jane',
user_lastName='Doe',
user_email='jane@doe.es')
db.session.add_all([user1, user2, user3])
db.session.commit()
# Class
cl1 = Class(class_name='0A')
cl2 = Class(class_name='0B')
cl3 = Class(class_name='0C')
cl4 = Class(class_name='Math')
cl5 = Class(class_name='Spanish')
db.session.add_all([cl1, cl2, cl3, cl4, cl5])
db.session.commit()
Bây giờ vấn đề của tôi là, làm cách nào để thêm vào nhiều cơ sở dữ liệu, vì tôi thực sự không thể tạo đối tượng 'student_identifier'? Nếu tôi có thể, nó có thể trông như thế này:
# Student Identifier
sti1 = StiClass(class_id=cl1.class_id, class_name=user1.user_id)
sti2 = StiClass(class_id=cl3.class_id, class_name=user1.user_id)
sti3 = StiClass(class_id=cl4.class_id, class_name=user1.user_id)
sti4 = StiClass(class_id=cl2.class_id, class_name=user2.user_id)
db.session.add_all([sti1, sti2, sti3, sti4])
db.session.commit()
Làm cách nào để chèn ORM vào một bảng nhiều đến nhiều?