一个通用的关系似乎是解决方案。但这会使事情变得更加复杂。
在我看来; 您的模型结构已经比必要的复杂。我只是将所有三个
Answer模型合并为一个。这条路:
Answer_Risk
无需修改即可工作。- 如果是,您可以设置
resident
为None(NULL)Answer_A
。 - 您可以根据来返回不同的字符串表示形式
resident == None
。(换句话说,相同的功能)
还有一件事; 您的答案可能会有不只一种风险吗?如果他们没有风险或没有风险,则应考虑采用以下替代实现:
- 使用一对一关系
- 将风险降级为类中的一个字段(或任意数量的字段)
Answer
。
我主要关心的既不是数据库结构也不是性能(尽管这些更改应该提高性能),而不是 代码的可维护性 。



