私はPostgresと宣言型ベースでSQLAlchemyを使用しており、この多対多の関係に沿った何かを持っています。
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 =髪の色...両方とも黒のボブとジムのように書くにはどうすればよいですか?髪と茶色の目(2つの詳細の1つのユニークな特性として組み合わされます-たとえば、アジア人)。現在、データベースに保存すると、同じ詳細の多くの特性が生成されます。テーブルには、多くの個別のアジア(黒髪、茶色の目)のエントリがあります。必要なのは、すべてを1つの特性にまとめることです。
これを明確に説明しているかどうかはわかりません。言い換える必要がある場合はお知らせください。