オブジェクトを別のオブジェクトのプロパティに割り当てる場合、最初のオブジェクトに2番目のオブジェクトを指定する自然な方法は何ですか?これは、データベースで外部キーが行うことと似ていると思います。
class Box(object):
things = []
class Thing(object):
box = None
thing = Thing()
box = Box()
# thing.box updates the box.things
thing.box = box
thing in box.things # should be true
# box.things updates thing.box
box.things.append(thing)
thing.box == box # should be true
これも1対1、多対多の関係で実現したいと思います。これは可能ですか?
私は現在、すべての「もの」のグローバルなコレクションを保持し、次に「ボックス」にプロパティを提供して、1つの場所にのみ属するものに属するものの情報を提供しています。ただし、モノのコレクションは非常に大きいので、「ボックス」オブジェクト自体に「モノ」オブジェクトへのポインタを配置したいと思います。