【问题标题】:How store Username locally for fast calculation in database如何在本地存储用户名以便在数据库中快速计算
【发布时间】:2017-11-29 11:25:12
【问题描述】:

我不知道,我的问题是否奇怪,因为我还没有找到答案。

我正在尝试编写“BLOG LIKE”网站,女巫会有用户。当我继续主提要时,系统应该向我显示所有帖子。从数据库中获取帖子时,系统应该检查帖子是我的,是我的“朋友”的帖子还是其他用户的帖子。如果帖子是我的,系统应该在其中添加“编辑按钮,如果是朋友帖子系统应该向我显示一些其他按钮(因此系统应该知道帖子是我的,朋友,阻止我的人或其他人)。

我会找到与我的联系并使用我的用户名发布作者。是我的帖子吗?创造者是我的朋友吗?我已经阻止了他或任何其他人,我会使用我的用户名找到它。因此,当我进入网站时,我想获得我的用户名并在我退出或关闭网站之前拥有它。 我正在使用 IdentityServer4,所以我有“用户 ID”,我可以立即获得,然后使用这个“用户 ID”我在另一个数据库中搜索我的用户名。

我的问题是在第一次进入网站后将我的用户名存储在哪里,以便更快地计算所有内容,而无需使用我的用户 ID 一次又一次地在数据库中搜索用户名?我认为是 cookie,但据我所知,这不是好方法。

如果问题很愚蠢,请帮助我更好地理解。 对不起,谢谢。

【问题讨论】:

    标签: authentication cookies database-design architecture identityserver4


    【解决方案1】:

    不完全确定您的技术堆栈是什么,但这里有一些建议:

    1. 理想情况下,您使用用户 ID,而不是用户名进行检查,如果用户名更改,您将遇到问题
    2. 您可以将内容存储在 cookie 中,但请确保对 cookie 进行加密
    3. 为每个 Web 请求查询您的数据库并不是一个坏主意,实际上这是更可取的,因为您不知道最后一次请求是什么时候发出的,从那时起数据库可能已经更改。
    4. 您可以在单个请求中缓存数据(例如用户名),例如 http 上下文对象,或者缓存,如果找不到,则从数据库中读取并将其缓存在上下文对象中。

    【讨论】:

    • 谢谢。我认为第一种方法是最好的
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2015-02-27
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多