我正在使用ASP.NET Core和通过Identity Framework进行身份验证来设置Web应用程序。快速提问。我正在存储有关用户的各种数据,例如用户的地址,帐户设置,订阅状态和到期日期等。我最好通过创建继承IdentityUser的ApplicationUser类将所有数据存储在AspNetUsers表中,还是保留该表登录/安全信息并创建另一个表来存储仅与我的应用程序相关的数据,并且在两个表之间具有一对一的关系?
答案 0 :(得分:1)
总是一个单独的表/类。
复杂度随应用程序而增长。桌子将变得太大,那么您将需要花一些时间来远离它。我们的遗留应用程序中有一个与之相似的组织,该组织的列已增长到70多个。我曾在Twitter上听到过类似经历的人的故事。
与此同时,您还可以考虑单一责任。给出更改的单一原因-甚至是Bobs叔叔更新了定义"A module should be responsible to one, and only one, actor"
。
您最终可能会根据module
进行设置-添加的数量越多,这个设置就越大。当然,只要等到以后再进行更改-但这永远不会发生。
对我来说,身份是它自己的系统。不是您的系统。它提供了一种认证机制。它使用用户类的能力或字段中的大多数列来执行此操作。
您的设置与您的应用有关-这是您的域。如果替换Identity
,则可以替换该用户表/用户类。那么您的设置将在哪里结束?