- 论坛徽章:
- 0
|
20可用积分
本帖最后由 huhuegg 于 2012-02-06 17:08 编辑
PtermUser表和UserGroup表有多对多关系,保存在UserGroupMember表中
请教如何删除/修改一个用户的多对多映射记录?
是在turbogears2中使用的
例如: PtermUser表中有一条UserID=1的用户记录,UserGroup表中有3条记录,分别为UserGroupID=1,UserGroupID=2,UserGroupID=3,
UserGroupMember表当前记录如下:
UserID UserGroupID
1 1
1 2
如希望UserGroupMember表记录修改为:
UserID UserGroupID
1 2
1 3
相关表定义如下:
"""
+-------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| UserGroupID | int(11) | NO | PRI | 0 | |
| UserID | char(64) | NO | PRI | | |
+-------------+----------+------+-----+---------+-------+
"""
user_group_member_table = Table('UserGroupMember', metadata,
Column('UserGroupID', Integer, ForeignKey('UserGroup.UserGroupID',
onupdate="CASCADE", ondelete="CASCADE"), primary_key=True),
Column('UserID', Integer, ForeignKey('PtermUser.UserID',
onupdate="CASCADE", ondelete="CASCADE"), primary_key=True)
)
"""
+---------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | default | Extra |
+---------------+-------------+------+-----+---------------------+----------------+
| UserID | int(11) | NO | PRI | NULL | auto_increment |
| UserName | char(64) | NO | UNI | NULL | |
| Name | char(64) | YES | | NULL | |
+---------------+-------------+------+-----+---------------------+----------------+
"""
class PtermUser(DeclarativeBase):
__tablename__ = 'PtermUser'
__table_args__ = {'mysql_engine':'MyISAM','mysql_charset':'utf8'}
#{ Columns
UserID = Column(Integer, primary_key=True, autoincrement=True)
UserName = Column(Unicode(64),unique=True, nullable=False)
Name = Column(Unicode(64), nullable=False)
#}
ptermuser_usergroup = relation('UserGroup', secondary=user_group_member_table, backref='PtermUser')
class UserGroup(DeclarativeBase):
__tablename__ = 'UserGroup'
__table_args__ = {'mysql_engine':'MyISAM','mysql_charset':'utf8'}
#{ Columns
UserGroupID = Column(Integer, primary_key=True, autoincrement=True)
UserGroupName = Column(Unicode(64),unique=True, nullable=False)
Info = Column(Unicode(64), nullable=True)
#}
usergroup_ptermuser = relation('PtermUser', secondary=user_group_member_table, backref='UserGroup')
|
|