假设我在遗留但仍处于活动状态的数据库中有三个表(duck,Goose和Rooster)。有一个第三方应用程序拥有此架构并定期添加/更新/删除条目,我具有只读访问权限。 Duck,Goose和Rooster中的PK保证是独一无二的,即使在桌子之间也是如此。
我想要一个超级类(Bird),我可以将它用作这三个表中的任何一个的ForeignKey。
这就是我被困的地方:
此时我最好的解决方案是使用Bird抽象类但忽略Django API。我只是包含了独特的PK,而不是使用ForeignKey来实现鸟类。每当我需要实际的对象时,我会使用一些辅助函数,比如“getBirdByPK()”来检查所有三个子类。
这非常不同于pythonic,我不喜欢帮助函数需要了解每个子类。
有更好的建议吗?