我是数据库的菜鸟,所以请帮助我。我正在尝试为我的api实现文件系统。我已经有了用户和彼此相关的文件,现在我正在尝试为这些文件实现目录层次结构。我的想法是,我在数据库中添加了一个目录行,其中包含有关其父目录,子目录和其中文件的信息。我的第一种方法是执行此操作(首先不包含文件):
class Directory(db.Model):
id = db.Column(db.Integer, primary_key=True)
children = db.relationship('Directory', back_populates='parent')
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
parent = db.relationship('Directory', db.back_populates='children')
这是我在阅读this教程后所想到的。但是我不认为这是正确的,也不是正确的方法。
欢迎提出有关实现此方法的任何想法:)
答案 0 :(得分:0)
非常感谢@Fian的solution。我将在此处发布针对我的案例的答案:
class Directory(db.Model):
id = db.Column(db.Integer, primary_key=True)
parent_id = db.Column(db.Integer, db.ForeignKey('directory.id'))
children = db.relationship('Directory',
backref=db.backref('parent', remote_side=[id])
)
files = db.relationship('File', backref='dir', lazy='dynamic')
class File(db.Model):
id = db.Column(db.Integer, primary_key=True)
dir_id = db.Column(db.Integer, db.ForeignKey('directory.id'))
如果链接无效,则称为Adjacency List Relationships