【问题标题】:Should I use an ORM to model a large tree structure?我应该使用 ORM 来建模大型树结构吗?
【发布时间】:2012-02-10 10:22:37
【问题描述】:

我们正在开发一个视频点播系统,用户可以在其中上传视频。我们想要创建一个视频存档的树形结构,用户可以在其中创建艺术家/专辑等文件夹,并将视频存储在正确的文件夹下。与所有树结构一样,用户将能够在文件夹之间移动视频、删除子树、复制视频以及移动子树和子树。

树可能有 1000 个视频和文件夹中的 10 个。

我的问题是 ORM 是否适合这种大小的树状结构?

【问题讨论】:

    标签: c# entity-framework orm


    【解决方案1】:

    假设您在数据库中的树形结构将是如下表:

    文件夹 ID |父文件夹 ID |文件夹名称

    为什么不呢?

    问题不是你是否应该使用 ORM,问题是你有什么问题 ORM 是一个合适的工具来解决。

    【讨论】:

    • 目前我们必须决定如何持久化数据。在项目的时间范围内,学习 ORM 可能很困难。有了那个表结构,我想我可以手工制作 SQL 吗?
    • "有了那个表结构,我想我可以手工制作 SQL 吗?"正是我的想法,除非您拥有复杂/大型数据结构,否则请远离 ORM。
    • 首先你需要定义你的数据和业务逻辑。那么你应该考虑如何持久化它以及如何轻松访问它。我无法回答您“仅手工制作 SQL”的问题,因为我不知道您的用例。例如,如果我需要一次性加载整个树,为什么不将此表加入权限表以获取属于用户的所有文件夹?或者,如果我只需要在用户导航到下一个级别时才需要加载,为什么我不能只询问“Where(x=>x.ParentId=selectedId)”?为此,我可以完美地使用任何 ORM。或者没有 ORM,因为它很简单。或者写一个 SP。
    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多