用例
我正在开发的应用程序是关于连接初创企业、求职者和投资者的。对不起,我不能给你 虽然我已经开发了40%左右,但名称仍然存在:)。将有三个实体。一个 是启动帐户、最终用户帐户和投资者帐户。我正在考虑添加follow/unfollow特性
为此,我应该如何建模我的应用程序
这是我所说的实体的模型
最终用户型号
class UserSetting(models.Model):
user = models.OneToOneField(User)
job_interest = models.ManyToManyField(Category, related_name='user')
is_email_notification = models.BooleanField(
default=True, help_text="Email me job recommendations based on my interests and preferences")
class Meta:
verbose_name = 'User Setting'
verbose_name_plural = 'User Settings'
def __str__(self):
return self.user.username
启动模式
class Startup(models.Model):
name = models.CharField(max_length=200, unique=True,
blank=False, null=False)
slug = models.SlugField(unique=True)
description = models.CharField(max_length=400)
投资者模型
class Investor(models.Model):
investor = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False,
null=False, help_text='Full Name')
slug = models.SlugField(max_length=200, unique=True)
contact_email = models.EmailField(null=True, blank=True)
# for now I have done like this
followers = models.ManyToManyField(
User, related_name='followers', blank=True)
现在,你可以看到我已经在投资者中包含了followers字段,但是我也需要在startup中包含follower系统,这样最终用户就可以跟踪startup,反之亦然。同样,在跟随投资者的过程中,只有初创企业可以跟随,但最终用户不应该跟随。你知道吗
最好的解决办法是什么?你知道吗
听起来像是要构建连接对象。您想针对这些对象注册用户。所以我可能会重新设计一下你的数据模型。以下是我的想法:
但django认证用户可以是“投资者”、“初创企业员工”或“最终用户”。而且,天使投资人更有可能是初创企业的高管员工。有可能,事实上,随着时间的推移,最终用户会成为初创企业的员工,这听起来很有必要。你知道吗
所以我会这样做:
我的思维过程是,数据模型不需要控制谁可以跟随谁的逻辑。我的思考过程是,应用程序将有单独的视图,可以控制谁可以看到什么。换句话说,数据模型不应该阻止最终用户跟随其他最终用户。这应该是UI/UX的一部分。你知道吗
这是我对推荐信的快速反应。你知道吗
相关问题 更多 >
编程相关推荐