我正在创建投资对象。投资者可以是人或公司。
如何在django中创建一个可以代表这些类型的模型对象?
以下是我想的几种方式:
1。有两个不需要的外键:
class Investor(models.Model):
company = models.ForeignKey('companies.Company',on_delete=models.CASCADE, blank=True, null=True)
customer = models.ForeignKey('accounts.Customer',on_delete=models.CASCADE, blank=True, null=True)
investor_name = models.CharField(max_length=255)
2。使用通用关系:
class TaggedItem(models.Model):
investor_name = models.CharField(max_length=255)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
第3。客户和公司继承的抽象模型
class Entity(models.Model)
class Customer(Entity)
Class Company(Entity)
最具建筑风格的路线是什么,不会给我带来很多问题?