Python 在sqlalchemy中的模型中存储另一个模型的列表
我有一个用户模型,它应该包含一个消息模型列表。Python 在sqlalchemy中的模型中存储另一个模型的列表,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我有一个用户模型,它应该包含一个消息模型列表。 此列表(在Usesr模型中)应包含20个消息对象,每24小时更新一次。 如何在模型类中实现这种体系结构 我想到了两种解决方案, 首先在用户模型中存储列表属性: class User (db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable = False) def __init__ (
此列表(在Usesr模型中)应包含20个消息对象,每24小时更新一次。
如何在模型类中实现这种体系结构 我想到了两种解决方案,
首先在用户模型中存储列表属性:
class User (db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable = False)
def __init__ (self,name):
self.name = name
self.tempList = []
def appendTempList (self, item):
self.tempList.append (item)
def removeTempListItems (self):
self.tempList = []
class Message:
id = db.Column(db.Integer, primary_key=True)
context = db.Column(db.String(200), nullable = False)
def __init__(self,msg):
self.context = msg
#some codes to add 20 random items into tempList of each User, every 24 hours
这是一个好方法吗?
我可以将列表作为属性存储在模型类中吗
我的第二种方法是在这些模型之间使用多对多关系:
user_message_table = db.Table ('user_message_table',
db.Column('user_id', db.Integer, db.ForeignKey('message_model.id')),
db.Column('message_id', db.Integer, db.ForeignKey('user_model.id'))
)
class User (db.Model):
__tablename__ = 'user_model'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable = False)
tempList = db.relationship("Message", secondary = user_message_table)
def __init__ (self,name):
self.name = name
def appendTempList (self, item):
self.tempList.append (item)
db.session.commit()
def removeTempListItems (self):
self.tempList.remove()
#remove item from user_message_table too
class Message:
__tablename__ = 'message_model'
id = db.Column(db.Integer, primary_key=True)
context = db.Column(db.String(200), nullable = False)
def __init__(self,msg):
self.context = msg
有什么想法吗