私は以下の作業をしています。 Project、User、PurchaseOrderという3つのモデルがあります。私は、プロジェクトのユーザーのメンバーシップを作成したいと考えています。ユーザーは、任意のプロジェクトのメンバーになることができます。これは ManyToManyFieldで解決できます。余分なフィールドと多対多の関係 - 一意性を回避する方法
さらに、特定のPurchaseOrdersに勤務時間を割り当てたいので、メンバーシップはPurchaseOrderを参照する必要があります。
これはManyToManyFieldにthrough-tableを使用し、PurchaseOrderモデルにForeignKeyを定義することで解決できると思います。したがって、私はPurchaseOrderへの参照をメンバーシップごとに持っています。
実際には、プロジェクトのメンバーシップは有効なままですが、PurchaseOrderのためにお金が費やされた後、新しいPurchaseOrderをメンバーシップに割り当てる必要があります。これは、ForeignKeyを新しいPurchaseOrderに更新するだけでも簡単にできます。
しかし、今は私の質問:私は(履歴追跡のためのメンバーシップ・テーブル内のデータ行、)古いプロジェクト・メンバーシップ・発注書-関係を維持したい
は、無効に設定して、新しいプロジェクトのメンバーシップを追加します-PurchaseOrder-Relationは、UserおよびProjectと同じForeignKeyを持ちますが、PurchaseOrderとは異なり、有効に設定されたフラグです。
これは有効なアプローチですか、これは一意性を回避する(またはManyToManyFieldの定義で一意性がない)か、これを行う方法がわかりますか?
メンバーシップオブジェクトを「ユニーク」にしたいと思っているのですか? –
私はメンバーシップオブジェクトがユニークであることを望んでいません、彼らはユニークかもしれないと思った。しかし、私はちょうどチェックし、彼らはそうではありません。どっちがいい。私はおそらく質問をする前にチェックしておいたはずです。 –