我正在使用 ASP.NET Core 设置一个 Web 应用程序,并通过 Identity Framework 进行身份验证。快问。我正在存储有关用户的各种数据,例如他们的地址、帐户设置、订阅状态和到期日期等。我是否最好通过创建继承 IdentityUser 的 ApplicationUser 类来将所有这些数据存储在 AspNetUsers 表中,或者我应该保留该表用于登录/安全信息并创建另一个表来存储仅与我的应用程序相关的数据,并且这两个表之间具有一对一的关系?
最佳答案
始终是一个单独的表/类。
复杂性随着应用程序的增加而增加。 table 会变得太大,然后你会花时间离开它。我们的旧应用程序中也有类似的情况,组织已发展到 70 多个列。我在 Twitter 上听说过有类似经历的人的故事。
除此之外,您还可以考虑单一职责。给定一个更改原因 - 或更多 Uncle Bobs 更新的定义“一个模块应该对一个且仅一个参与者负责”
。
您最终可能会对每个模块
进行设置 - 添加的越多,它就会变得越大。当然,留到以后再改变吧 - 但这永远不会发生。
对我来说,身份是它自己的系统。不是你的系统。它提供了一种身份验证机制。它使用用户类中的能力或字段中的大多数列来执行此操作。
您的设置与您的应用程序有关 - 这是您的域。如果替换 Identity
,则可能会替换该用户表/用户类。那么您的设置最终会在哪里?
关于c# - 是否将用户设置存储在 ASP.NET Core Identity AspNetUsers 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55614524/