我的 web2py 项目中有一张与此类似的文章表:
db.define_table('articles',
Field('created_on', 'datetime', default = datetime.today(),
required = True, notnull = True,
requires = [IS_NOT_EMPTY(),
IS_DATETIME(format=T('%Y-%m-%d %H:%M:%S'))]),
Field('article_en', 'text', required = True,
notnull = True, requires = IS_NOT_EMPTY()))
另一个跟踪上传的文件:
db.define_table('files',
Field('filename', 'string', required = True, notnull = True),
Field('uploaded_data', 'upload', autodelete = True,
required = True, notnull = True, requires = IS_NOT_EMPTY()),
Field('created_on', 'datetime', required = True, notnull = True))
现在我想为文章使用的每个文件提供参考,以及文件所属的每篇文章的参考。我需要这个,这样我就可以轻松删除未使用的文件,而不会因为被忽视的关系而弄乱文章的危险。
更直接地说,这种关系非常接近:每篇文章都有几个文件,每个文件都链接到不同的文章。
根据我从 web2py 书中收集到的信息,没有直接支持多对多关系。为了解决这个问题,一个简单的解决方法是使用一个中间表来处理关系,但显然我不是数据库专家,所以我几乎不知道我应该怎么做。
一些帮助将不胜感激!