考虑以下结构:
Id
Name
Id
OrganizationId
CreatedAt
Name
Email
Verified
第一个用户也将创建该组织,因此他们的帐户已经过验证。后续用户需要现有的已验证用户来验证其帐户。
使用实体框架,与在几乎每个查询中检查已验证的标志相比,它们是一个更有说服力且更不容易出错的解决方案吗?例如。类似的东西:
from u in Db.Users
where u.OrganizationId == 1 && u.CreatedAt >= DateTime.Now.AddDays(-14d) && u.Verfied
select u
我考虑过的一个选项是创建第二个表,如下所示,并在用户OrganizationId
上创建null
,但它似乎不太合适!
Id
OrganizationId
UserId
答案 0 :(得分:1)
我会通过另一个DBSet设计这个但是比你建议的更进一步。可能类似于PendingRequest
Id
OrganizationId
CreatedAt (?)
Name
Email
不同之处在于,我不会在用户验证之前将其添加到用户。这清楚地将请求和“真实用户”分开,这意味着您几乎没有风险意外地将未经验证的用户包含在您的代码中,因为这需要您加入另一个DbSet。
一旦有人验证了请求,我就会根据该请求创建一个用户并删除该请求。