問題:数人のグループが異なるタイプの機器を使用できますが、同じタイプの機器は区別できません。例えば、グループは3つのハンマーと4つの軸を使用できますが、個々の軸やハンマーを区別する必要はありません。 UPD:ある日、私たちは今考えることのできない別の楽器の種類を使うことができました。Djangoモデルで辞書のようなフィールドを実装する方法は?
この場合のDjangoモデルの設計方法は?
私の考え:
class Person(models.Model):
name = models.CharField()
class Group(models.Model):
title = models.CharField()
members = models.ForeignKey(Person)
equip = ???
私はthis question on StackExchangeとcode snippet for a Django Dictionary modelを見つけたが、私はまだ選択するどのようなアプローチを確認していません。 さらに、辞書にはdjango-jsonfieldとdjango-picklefieldがあります。
また、ここには本当に辞書が必要ですか?
まず、これが適切なアプローチかどうかを判断する必要があります。データベースの正規化はおそらく良い考えです。 – e4c5
私はあなたのコメントを理解しているか分かりません。個々の軸を区別すると、DBを正規化できます。しかし私はしません、私は報告書を記入するために誰かに尋ねるとき、彼は "私たちは2軸と3ハンマーを使用した"と報告し、これはまさに私が保存したい情報です。 //私が見る別のアプローチは、利用可能な計測器タイプのセットを一定にすることです。しかし、ある日、私たちは今考えることのできない別のツールを使うことができました。 –
本当に必要なのは 'tool | job | number_used'のようなテーブルです – e4c5