我正在尝试在Django中创建一个墙壁,我已经做出了一项重要的设计决策。
我有以下类:
WallPost(墙贴), UserProfile(用户配置文件), Group(组), Event(事件)
问题是我有用户配置文件、活动和群组都会有墙壁可以发布。因此,我不能从发布者的用户模型建立外键关系,因为有多个模型可以发布(除非使用通用键,但我感觉必须有一个所有墙贴的封闭对象,如一个墙壁对象)。
然后我想到了拥有一个中间类型的对象,比如墙壁,墙贴将外键到这个墙壁上,然后用户组和活动将外键到墙壁上。对我来说这也显得效率低下,因为墙壁无需存储任何东西,只是一个封闭对象。
在使用Django中的外键、多对多关系和通用外键时,最佳实践是什么?即如何确定关系的方向?
感谢所有的帮助。