我正在设计一个应用程序,处理两组数据——用户和区域。这些数据是从第三方生成的文件中读取的。我有一个用户类和一个区域类,数据被读入到一个用户数组和一个区域数组中(或其他适当的内存结构,具体取决于我们采用的技术)。
这两个类都有一个唯一的ID成员,从文件中读取,而用户类包含一个区域ID数组,给出了一个关系,其中一个用户与多个区域相关联。
需求非常简单:
- 用户列表 - 区域列表 - 指定区域的用户列表 - 指定用户的区域列表
我的第一个想法是将数据保留在两个数组中,然后针对每个需求,有一个单独的方法,该方法将根据需要查询一个或两个数组。这很容易实现,但我并不确定它一定是最好的方式。
然后我想到,在用户类上有一个“获取区域”方法,在区域类上有一个“获取用户”成员,如果例如我处于一个区域对象的阶段,我可以通过一个属性找到它的用户,但是,区域类上的“获取用户”方法如何知道/访问用户数组呢?
我以前遇到过这个问题,但从来没有找到一个明确的解决方案。也许我只是把它搞得比实际上更复杂了。有人能提供任何提示、URL或书籍,帮助我解决这种设计问题吗?
更新: 感谢大家抽出时间留下一些提示。您的评论非常感激。
我同意这个问题的根源是多对多关系。我理解在关系数据库中如何建模,那很简单。
我收到的数据是来自第三方的二进制文件,因此我无法控制它们的结构,但当我读取它们时,可以以最佳方式存储它们。虽然这有点牵强附会,但我认为读入数据后将其存储在数据库中,程序将不得不查询数据库以获得结果。它并不是一大堆数据,所以我认为通过将其存储在内存结构中,可能会得到需要的结果。
这两个类都有一个唯一的ID成员,从文件中读取,而用户类包含一个区域ID数组,给出了一个关系,其中一个用户与多个区域相关联。
需求非常简单:
- 用户列表 - 区域列表 - 指定区域的用户列表 - 指定用户的区域列表
我的第一个想法是将数据保留在两个数组中,然后针对每个需求,有一个单独的方法,该方法将根据需要查询一个或两个数组。这很容易实现,但我并不确定它一定是最好的方式。
然后我想到,在用户类上有一个“获取区域”方法,在区域类上有一个“获取用户”成员,如果例如我处于一个区域对象的阶段,我可以通过一个属性找到它的用户,但是,区域类上的“获取用户”方法如何知道/访问用户数组呢?
我以前遇到过这个问题,但从来没有找到一个明确的解决方案。也许我只是把它搞得比实际上更复杂了。有人能提供任何提示、URL或书籍,帮助我解决这种设计问题吗?
更新: 感谢大家抽出时间留下一些提示。您的评论非常感激。
我同意这个问题的根源是多对多关系。我理解在关系数据库中如何建模,那很简单。
我收到的数据是来自第三方的二进制文件,因此我无法控制它们的结构,但当我读取它们时,可以以最佳方式存储它们。虽然这有点牵强附会,但我认为读入数据后将其存储在数据库中,程序将不得不查询数据库以获得结果。它并不是一大堆数据,所以我认为通过将其存储在内存结构中,可能会得到需要的结果。