我将 SQLAlchemy 与 Postgres 和声明性基础一起使用,并且具有这种多对多关系的内容:
user_trait_association = Table('user_trait', Base.metadata,
Column('user_id', Integer, ForeignKey('user.id')),
Column('trait_id', Integer, ForeignKey('trait.id'))
)
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
trait = relationship('SomeTrait', backref='user')
class SomeTrait(Base):
__tablename__ = 'sometrait'
id = Column(Integer, primary_key=True)
detail1 = Column(String)
detail2 = Column(String)
我的问题:我如何设置它以使特征是独一无二的——也就是说,说 detail1 = 眼睛颜色,detail2 = 头发颜色......我如何写它使得 Bob 和 Jim 都有黑色头发和棕色的眼睛(结合为 2 个细节的一个独特特征 - 比如亚洲人)。现在,当我保存到数据库时,它会生成许多具有相同细节的特征——该表有许多单独的亚洲(黑发,棕色眼睛)条目,而我想要的是将所有内容归为一个特征。
我不确定我是否清楚地描述了这一点;让我知道是否需要改写。