在列表和字典上实现多对多关系模型

Implementation of Many to Many relationship model on lists and dictionaries

我有一个 class 人和 class 城市、州、国家。我需要存储特定人居住在特定城市、州和国家的信息。最好不使用关系数据库,只使用有状态服务的标准词典。

值得一提的是,实体 City、State 和 Country 应该分开进行搜索和快速计算,因为它们包含一些与人无关的数据。

对我来说如此困难的是我对服务数量有限制:我不能像数据库表一样对待它们并创建像 PersonCity 这样的服务来仅存储标识符。

有什么好的方法可以在 Azure Service Fabric 中实现这种关系并进行高效搜索吗?也许有一些数据重复。

这个问题被标记为 azure-service-fabric 因为我也想知道,如果我的问题是服务结构不打算使用的东西,或者是否有标准的服务结构方法来处理这种数据关系。

您可以使用这种(非常有限的)方法:

创建一个以对象名为键、以对象为值的字典。就像一本包含 City 对象的字典,由 City.Name 键控。对州、国家和个人重复。

然后从 Person 中,您可以将 City.Name 用作 Person.CityName 中的 'foreign key'。

使用这种方法,您可以通过全名查找城市、州、国家/地区。

缺点:

  • 您不能搜索扩展属性,也不能进行通配符搜索。
  • 没有参照完整性。
  • 对 Person 的查询总是作用于多个字典。

(我的建议:针对此问题使用合适的数据库或搜索平台)