0

2 人の関係を定義し、それを SQLAlchemy で照会する最良の方法を探しています。私はこれについて頭を包むのに苦労しています。これが私がこれまでに持っているものですが、このようなリンクテーブルとしてモデルを使用する必要があるかどうかはわかりません. アドバイス?

character_a= student character_b=teacher

または[[relationship.character_b, relationship.character_b.role] for relationship in character.relationships]、関連するキャラクターとその役割のリストを取得します。

class Character(db.Model):
    __tablename__ = 'characters'
    story_id = db.Column(db.String, db.ForeignKey('stories.id'))
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50))
    gender = db.Column(db.String(6))
    description = db.Column(db.Text())
    relationships = db.relationship('Relationship', backref='character', lazy='dynamic')

class Relationship(db.Model):
    __tablename__ = 'relationships'
    character_a_id = db.Column(db.String, db.ForeignKey('characters.id'))
    character_b_id = db.Column(db.String, db.ForeignKey('characters.id'))
    character_a_role = db.Column(db.String(25))
    character_b_role = db.Column(db.String(25))
4

1 に答える 1

0

データベース スキーマを最初から正しく理解するのは困難です。Peter Norvig のアドバイスに従うことをお勧めします。テスト ケースを英語で記述し、コードでモデル化します (データベースに存在すると仮定して関係を操作します)。現在の設計の欠点をその方法で発見します。その後、関係を改良することができます。完了したら、コードは英語で書いたユース ケースと同じくらい読みやすくなければなりません。

于 2013-08-17T04:48:54.720 に答える