例如我有两个表用户表和视频表,user和video表,用来记录用户观看视频。二者为多对多关系。按照sqlalchemy惯例,往往都是建一个中间表。
user_video = Table('user_video', Base.metadata,
Column('user_id', ForeignKey('user.id'), primary_key=True),
Column('video_id', ForeignKey('video.id'), primary_key=True))
这时我想需要统计一个每个用户的每个视频的观看时长的字段,如果我直接加在中间表上一个time字段,感觉就很方便,原来用sql语句做过类似的表,但是不知道加上之后怎么用sqlalchemy的语法操作,还是说这样行不行得通?
最后还是自己在官方文档里找到了答案:Association Object;
代码如下:
意思是中间表再和父子表建立关系。