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

时间:2016-06-06 08:59:47

标签: dictionary data-structures many-to-many relationship azure-service-fabric

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

值得一提的是,实体城市,州和国家应分开进行搜索和快速计算,因为它们包含一些与人无关的数据。

让我这么难的事情是我对服务数量有限制:我不能像数据库表一样对待它们,并创建像PersonCity这样的服务来存储唯一的标识符。

在Azure Service Fabric中实现此类关系是否有任何好方法并且具有高效搜索?也许有一些数据重复。

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

1 个答案:

答案 0 :(得分:0)

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

创建一个由object-name键入并按对象赋值的字典。就像带有City对象的字典一样,由City.Name键入。重复州和国家和人。

然后从Person,你可以使用City.Name作为'外键'在Person.CityName。

使用这种方法,您可以按名称查找城市,州,国家。

缺点:

  • 您无法搜索扩展属性,也无法搜索通配符。
  • 没有参照完整性。
  • 对人的查询总是对多个词典起作用。

(我的建议:使用适当的数据库或搜索平台来解决这个问题)