我正在将MariaDB服务器和MySQL工作台用于python的客户端和SQLAlchemy。我有两个表users
和sessions
。我要实现的是这两列之间的一对一映射,即每个用户只能有一个会话。这是我的模型声明。
class User(Base):
__tablename__ = 'users'
id = Column('id', INTEGER, Sequence('users_id_seq', start=1,
increment=1),
primary_key=True)
email = Column('email', VARCHAR(100), nullable=False, unique=True)
first_name = Column('first_name', CHAR(50))
last_name = Column('last_name', CHAR(50))
password = Column('password', VARCHAR(128))
profile_pic = Column('profile_pic', VARCHAR(500))
# relationships with other tables
session = relationship('Session', uselist=False, back_populates='user')
和
class Session(Base):
__tablename__ = 'sessions'
user_id = Column('user_id', INTEGER, ForeignKey('users.id'),
nullable=False, primary_key=True)
token = Column('token', VARCHAR(36), nullable=False)
# relationship
user = relationship('User', back_populates='session')
这似乎执行得很好,但是当我使用MySQL工作台对架构进行反向工程时,它会在两个表之间产生一对多的关系。这是图片: