我正在设计一个处理两组数据的应用程序——用户和区域。数据是从第三方生成的文件中读取的。我有一个用户类和一个区域类,数据被读入一个用户数组和一个区域数组(或其他适当的内存结构,取决于我们采用的技术)。
这两个类都有一个从文件中读取的唯一 ID 成员,并且 User 类包含一组区域 ID,给出一个用户与多个区域相关联的关系。
要求非常简单:
- 用户列表
- 地区列表
- 指定区域用户列表
- 指定用户的区域列表
我的第一个想法是将数据留在两个数组中,然后对于每个要求,有一个单独的方法可以根据需要询问一个或两个数组。这很容易实现,但我不相信它一定是最好的方法。
然后我考虑在 User 类上有一个“Get Areas”方法,在 Area 类上有一个“Get Users”成员,这会更有用,例如,如果我正处于我有一个 Area 对象的阶段,我可以找到它是一个属性的用户,但是 Area 类上的“获取用户”方法如何知道/有权访问用户数组。
我之前遇到过这个问题很多次,但从来没有真正想出一个明确的解决方案。也许我只是让它比实际情况更复杂。任何人都可以提供任何可以帮助我进行此类设计的提示、URL 或书籍吗?
更新:感谢大家花时间留下一些提示。非常感谢您的意见。
我同意这个问题的根源是多对多关系。我了解如何在关系数据库中对其进行建模,这非常简单。
我收到的数据是来自第三方的二进制文件的形式,所以我无法控制这些文件的结构,但我可以在读取时以最好的方式存储它。它有点像圆形的钉子漏洞,但我认为将其读取然后将其存储在数据库中,然后程序将不得不查询数据库以获取结果。这不是大量的数据,所以我认为可以通过将其存储在内存结构中来获取我需要的内容。