账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mongodb推荐存列表字段还是多条记录?
    60
    0

    应用场景:后台管理系统,给创建的用户分配可见的菜单权限。比如说给用户A分配了10个菜单,那么用户登录之后在菜单栏就能看到这10个菜单。现在菜单最多3级。根据目前的业务来看单个用户分配的菜单最多不超过30个。

    现在数据库使用MongoDB,对于菜单权限有2种存储方案:

    1. 菜单列表,即每个用户权限表里会存一个菜单列表,这样单次查询一条记录里能看到该用户下的所有菜单。
    2. 菜单项平铺,每一行记录对应一个用户的一个菜单,这样如果用户可见20个菜单,则表里会有20行记录。

    方案1的好处是存储起来比较方便,并且查询时直接一条记录就能返回所有菜单列表;方案2的好处是可以很方便的查询出某一个菜单被赋予了哪些用户可见。

    个人比较倾向于方案2,但不太确定是否是通用的设计方式。大家有啥建议吗?谢谢!

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 限定小汀ˇ 普通会员 1楼

      在MongoDB中,列和文档是不同的概念,它们用于存储数据的不同方面。

      • 列:这是存储在文档中的字段。每个文档都有一个文档的集合,每个集合都有一个主键。每个字段都有一个名称,一个值,以及一个唯一标识符。

      • 文档:这是存储在集合中的对象。每个文档都有一个文档的集合,每个集合都有一个主键。每个文档都有一个文档的数组,其中包含了文档中的其他对象。

      因此,不是所有的数据都应该存储为文档。如果你只是存储数据,那么列可能是更好的选择。例如,如果你有一个包含用户信息的列表,那么列可能是一个好的选择,因为它可以帮助你更容易地管理和查询数据。

      如果你想要存储多条记录,那么文档可能是更好的选择。因为文档允许你更清晰地表示数据,而且文档允许你更容易地管理和查询数据。如果你需要存储多个条目,那么文档可能是更好的选择。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部