代码之家  ›  专栏  ›  技术社区  ›  refulgentis

新的核心数据实体与现有的相同:单独的实体还是其他解决方案?

  •  2
  • refulgentis  · 技术社区  · 14 年前

    我有几个选项可以做到这一点:我可以添加一个isClosed属性到我的Order实体中,并使用谓词执行所有对“打开”订单的fetch请求,但这样就避免了每次需要fetch时DB都要处理大量记录的问题,由于我的应用程序的工作流程,Order实体通常需要这样做。如果我理解正确,创建“ClosedOrder”子实体也会有同样的问题,因为核心数据将所有子实体存储在数据库的同一个表中。

    在这种情况下,创建一个完全独立的实体是愚蠢的吗?或者这正是我需要做的?对于我对数据库性能的总体了解不足,我深表歉意,核心数据很漂亮,因为它抽象了需要了解的内容,但同时它实际上并不能使它变得不重要,特别是在这样的情况下,如果我的用户把它推得太远,性能可能会严重下降。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Joshua Nozzi    14 年前

    如果您使用的是SQLite存储类型,并且“isClosed”属性是“Indexed”(实体编辑器面板中的一个设置),那么您可以有数十万个订单,并且在只筛选“isClosed==YES”时仍然有一个很好的、快速的获取时间。

    创建一个单独的实体并不能真正为您带来很多性能,但是