sql >> データベース >  >> RDS >> Mysql

モデルユーザーとそれ自体のSQLAlchemy(python、flask)で多対多の関係を作成する方法

    実装しようとしているパターンは、多対多の関係の特殊なケースです。 SQLAlchemyはこれを隣接リスト関係と呼んでいます。そこでコードを実行することをお勧めします:

    http://docs.sqlalchemy.org/en /rel_0_9/orm/relationships.html#adjacency-list-relationships

    重要なのは、そこにある「remote_side」kwargです。

    理由は次のとおりです。関連付けテーブル(「friends」)に、テーブル「users」を指す2つの外部キーがあります。1つは列「user_id」に、もう1つは列「friend_id」にあります。 SQLAlchemyは外部キーに基づいて関係を自動検出しようとしますが、関係がどちらの方向に進むかがわからないため失敗します。したがって、テーブル「友達」にそのようなエントリがある場合

    user_id   : 1
    friend_id : 2
    

    SQLAlchemyは、user_1がuser_2を友達として持っているか、またはその逆かを判断できません。

    それが紛らわしいと思われる場合は、そうです。ソーシャルネットワークの意味での友情は一義的である可能性があります 、この場合、user_1がfriend user_2を持っているということは、user_2がuser_1を友達として持っているという意味ではありません。または、全単射にすることもできます 、この場合、2つは同等です。ここでは年齢を示していますが、前者はLivejournalで表され、後者はFacebookで表されています。

    SQLAlchemyでユニジェクティブな関係を実装する方法が頭からわかりません。それは醜いUNIONALLかMySQLのようなものです。



    1. SQL ServerのDateTimeオブジェクトをBIGINT(.Netティック)に変換します

    2. Pythonを使用してPostgreSQLデータベースに「NULL」値を挿入するにはどうすればよいですか?

    3. 合計を含む週ごとのSQLpostgres集計/データのピボット

    4. Tomcatjdbc接続プールに接続がありません