language-agnostic - 最佳实践 : Should one avoid bi-directional relationships?

标签 language-agnostic datamodel

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

3年前关闭。




Improve this question




我想知道处理这样的数据模型的最佳做法是什么:
Simple security model

我们有 3 个实体:

  • 角色
  • 用户
  • 权限

  • 请注意,实体表示为 java 类,并将通过休眠映射到数据库,无论如何我认为可以在不了解这些技术的情况下回答这个问题。
    Role 之间存在多对多关系& UserRole 之间& Permission .

    这里可以建立双向关系吗? 所以,你可以问Role给你他所有的成员并问User给你他所有的角色。

    您可以询问两个实体非常方便,但是一个缺点是,每当您删除关系时,您都必须管理两个实体。

    例如。如果您删除 Role来自 User您还必须删除 User来自 Role .如果有很多这样的关系,这可能会很烦人。因此,我想最好的做法是什么。

    最佳答案

    我尽量避免双向关系。而是用 DAO/Repository 中的显式查询替换一个方向。使模型更简单,如果通过接口(interface)正确完成,应用程序将清除循环依赖

    关于language-agnostic - 最佳实践 : Should one avoid bi-directional relationships?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589764/

    相关文章:

    language-agnostic - 检测 rtf 标记中的多字节和汉字

    iphone - 图像链接的数据结构

    database - 是否存在可用于所有 JSON 解析器和数据库的安全 JSON 子集

    database - 为运输地点制作数据模型

    language-agnostic - 迭代的东西是如何调用的?

    list - 存储多重集/无序列表的节省空间的方法

    testing - 您的 BDD 规范应该与 UI 测试分开吗?

    language-agnostic - 你在你的日志里写了什么?

    user-interface - 以 UI 为中心的数据模型与以领域为中心的数据模型 - 优缺点

    cocoa - Xcode 中带有 Core Data 的高级数据模型